Nginx 反向代理错误页面

Nginx 反向代理错误页面

我正在使用 nginx 作为单台机器的反向代理。当后端机器出现故障时,我希望出现错误页面。

这是我的配置文件:

server {
    listen   80;
    access_log  /var/log/nginx/access.log;
    root /var/www/nginx;
    error_page 403 404 500 502 503 504 /error.html;
    location / {
            proxy_pass      http://192.168.1.78/;
            include         /etc/nginx/proxy.conf;
    }

答案1

啊哈,我明白问题所在了。你没有为 nginx 提供任何方法来实际提供诸如 之类的静态文件/error.html,因此它试图将它们传递到你的后端。

快速解决方法是:

location /error.html {
    internal;
}

这将导致 nginx/error.html自行处理. 然后它将尝试提供定义文档之外的文件root

顺便说一句,您可能希望对 4xx 错误和 5xx 错误使用不同的错误页面。如果后端暂时瘫痪,您肯定不希望人们(或搜索引擎!)看到“未找到”或其他错误页面。

相关内容