我使用nginx作为我项目的代理服务器。如果我的应用离线进行维护,我希望显示后备页面。这到目前为止工作正常。唯一的问题是,服务器响应带有502错误代码 - 这是有道理的。如何在我的后备中将其更改为503路线?
server {
listen 80;
error_page 500 502 503 504 @fallback;
location / {
proxy_pass http://0.0.0.0:3000;
}
location @fallback {
// I need this to answer with a status of 503 instead of a 502
root /srv/my-project/static;
try_files /fallback.html;
}
}
答案 0 :(得分:4)
您可以设置错误页面nginx error page
并设置类似
的东西 error_page 502 =503 /maintenance.html
或类似
location / {
error_page 502 =503 /maintenance.html;
include proxy_params;
proxy_pass http://unix:/var/run/my.sock;
}
location /maintenance.html {
return 503;
}
来源:How can I make Nginx return HTTP 503 when my proxied app server is down?
答案 1 :(得分:1)
谢谢@shalbafzadeh的回答,这解决了我。
在我非常特殊的情况下,解决方案看起来像这样:
server {
listen 80;
error_page 502 =503 @fallback; <-- THIS
location / {
proxy_pass http://0.0.0.0:3000;
}
location @fallback {
root /srv/my-project/static;
try_files /fallback.html;
}
}