nginx error_page 中 502 Bad Gateway 错误

nginx error_page 中 502 Bad Gateway 错误

这是我的服务器配置:

    server {
            listen 0.0.0.0;
            server_name dev.host.com;

            location / {
                    include /etc/nginx/proxy.conf;
                    proxy_pass http://127.0.0.1:5000;
                    proxy_redirect default;

                    error_page 502 =200 @maintenance;
            }

            location ^~ /(img|js|css)/ {
                    root /path/to/application/assets;
                    expires max;
                    break;

                    error_page 404 =302 /;
            }

            location @maintenance { 
                     root /path/to/static/offline/files;
                     try_files $uri $uri/ /index.html =503;
            }
    }

当上游应用程序不在线时,我会获取根路径的默认 nginx 502 页面(即:)GET /。知道为什么会发生这种情况吗?我希望根路径像任何其他请求路径一样使用维护页面进行响应。

答案1

我对整个虚拟主机做了这个:

server {
         (...) 
         error_page 500 502 503 504 /5xx.html;
            location /5xx.html{
                    root /www/error_pages/;
         } 
}

这对我来说非常有效。

答案2

答案3

细节决定成败;我的@maintenance命名位置设置不正确。具体来说,发送参数 ( $uri/) 导致try_files了问题。以下是正确的命名位置:

location @maintenance { 
    root /path/to/static/offline/files;
    try_files $uri /index.html =503;
}

相关内容