![NGINX 自定义错误页面 504 超时不起作用](https://linux22.com/image/762731/NGINX%20%E8%87%AA%E5%AE%9A%E4%B9%89%E9%94%99%E8%AF%AF%E9%A1%B5%E9%9D%A2%20504%20%E8%B6%85%E6%97%B6%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
某些服务器操作可能会很慢并导致 nginx 504 超时。我尝试为 502、504 错误添加自定义错误页面,但 nginx 始终显示默认错误页面。
这是我的配置
server {
listen 443 ssl;
server_name falsename.name.com
ssl_certificate path_to_cert;
ssl_certificate_key path_to_key;
error_page 502 504 /errors/custom_504.html;
location /errors/ {
autoindex on;
root /usr/share/nginx/html;
try_files $uri /errors/404.html;
}
location / {
error_page 502 504 /errors/custom_504.html;
proxy_pass https://10.0.0.101:8514;
proxy_pass_request_headers on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Connection "";
proxy_http_version 1.1;
}
}
答案1
您的error_page
文件需要位于/usr/share/nginx/html/errors
目录下,因为 nginx 会将路径附加location
到指令中指定的路径之后root
。
答案2
你能尝试这样写吗?
error_page 502 /errors/custom_504.html;
error_page 504 /errors/custom_504.html;
答案3
事实证明上述配置有效,是 NGINX 前面的负载均衡器超时了,所以错误是从该服务器发送的,而不是 NGINX