当我的代理应用服务器关闭时,如何让 Nginx 返回 HTTP 503?

当我的代理应用服务器关闭时,如何让 Nginx 返回 HTTP 503?

我有一个 nginx Web 服务器,位于运行 Web 应用程序的 Jetty Java 应用服务器前面。

如果代理的 Jetty 服务器关闭,我想要配置 nginx 来返回 HTTP 503。

这样,当我关闭应用服务器进行维护时,如果它发生崩溃,则会向所有客户端返回 503,让他们知道该站点暂时不可用。

但是,使用基本配置时,当 Nginx 无法连接到 proxy_pass 位置时,它会返回 HTTP 502 Bad Gateway。

是否可以配置 nginx 来报告 503?

答案1

您可以通过设置错误页面

error_page 502 =503 /maintenance.html

答案2

仅使用 Martin Fjordvald 答案的内容,我仍然得到 502,我没有真正的 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;
    }

相关内容