我有以下nginx配置:
server {
listen 80;
server_name default;
location / {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080/;
}
}
当http://127.0.0.1:8080/
的内部服务没有响应时,nginx会返回 502 Bad Gatway错误。
我的问题:如何配置nginx以返回静态html文件,例如/var/www/error.html
,何时发生此类错误?
我尝试了什么
采取提示from here我试过了:
server {
listen 80;
server_name default;
location / {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080/;
}
error_page 404 502 /error.html;
location = /error.html {
internal;
root /var/www;
}
}
如果服务(在端口8080
上)关闭,但是当服务启动时我尝试访问url /error.html
nginx匹配最后一个位置(返回静态)文件),我想避免它。
答案 0 :(得分:2)
好吧,如果您真的不想公开错误页面,可以使用命名位置。
server {
listen 80;
server_name default;
location / {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080/;
# probably you also need this
# proxy_intercept_errors on;
}
error_page 404 502 @error;
location @error {
root /var/www;
try_files /error.html /error.html;
}
}