我正在尝试使用 unicorn 捕获 nginx 的 502 bad gataway。当 unicorn 处于不是正在运行。我尝试在 Unicorn 未运行时使用自定义错误页面,但无济于事。
我错过了什么?根据文档,这应该是正确的,但我只是没有看到任何错误。
上游独角兽 { 服务器 unix:/srv/host/shared/tmp/unicorn.sock fail_timeout=0; }
server {
listen 80 deferred;
server_name host.com host.com
client_max_body_size 4G;
keepalive_timeout 10;
root /srv/host/public;
location / {
try_files /system/maintenance.html $uri/index.html $uri @unicorn;
}
try_files $uri/index.html $uri @unicorn;
location @unicorn {
error_page 502 /system/maintenance.html;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
}
我的 nginx error.log 显示:
unix:/srv/host/shared/tmp/unicorn.sock failed (111: Connection refused) while connecting to upstream, client: 83.117.60.95, server: host.com, request: "GET / HTTP/1.1", upstream: "http://unix:/srv/host/shared/tmp/unicorn.sock:/", host: "host.com"
答案1
是的,你可以在 nginx 中自定义错误页面。在你的配置中添加类似以下内容:
error_page 502 /path/to/error-pages/502_bad_gateway.html;