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

Ric*_*ols 6 jetty nginx 503-error

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

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

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

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

是否可以将 nginx 配置为报告 503?

Mar*_*ald 5

您可以通过设置错误页面来实现

error_page 502 =503 /maintenance.html
Run Code Online (Sandbox Code Playgroud)


Tho*_*ner 5

仅凭 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;
    }
Run Code Online (Sandbox Code Playgroud)