【发布时间】:2016-07-17 03:19:14
【问题描述】:
我试图在后面的网络服务器(上游)离线时显示自定义 502 错误页面,但它不起作用:它继续显示默认的 502 错误页面(我确定上游已离线)。
我的文件组织如下:
- 静态文件位于
/var/web/example.org/www/res下(例如:/var/web/example.org/www/res/robots.txt); - 错误页面位于
/var/web/example.org/www下(例如:/var/web/example.org/www/502.html)。这是因为我不希望在该网络服务器开启时访问错误页面(不是来自后面的网络服务器,包括 404 和其他)。
这是我的(匿名)配置:
upstream exampleorg {
server 127.0.0.1:8087;
}
server {
listen 80;
server_name www.example.org;
# content
# - static
root /var/web/example.org/www/res;
# - main webserver
error_page 403 404 @exampleorg;
error_page 502 /../502.html;
location @exampleorg {
proxy_pass http://exampleorg;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
我还尝试了以下方法来定义以下内容以捕获 502(在服务器块中,最后):
error_page 502 /502.html;
location /502.html {
root /var/web/example.org/www;
internal;
}
但是 nginx 继续显示默认的 502 页面(即使没有 internal;)。我应该怎么做 ?提前感谢您的解决方案:)
【问题讨论】: