我们有一个 NGINX 反向代理(集群),有 45 个上游(22 个域、20 个子域、11 个应用程序)。
我们的一些项目为全球的一些用户托管 API。
我们的开发人员针对特殊情况设计了特殊的自定义 500 响应,并希望仅向 tomcat_api 上游显示该消息。
他们想要提供 500 个页面,并处理 NGINX 上 tomcat_api 上游成员的异常。但我们希望处理 NGINX 上的所有其他 5xx 错误。
因为我无法成功,所以现在需要帮助。
以下是服务器配置,您能帮忙吗?
服务器 { 服务器名称api.hotcoldwarm.com; 地点 / { 添加标题X-Frame-Options SAMEORIGIN; 添加标题X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; 添加标题 x-redirect-uri hotcoldwarm; add_header 严格传输安全“max-age=31536000; includeSubdomains; always”; proxy_set_header X-真实IP $remote_addr; proxy_set_header 主机 $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 代理服务器:http://tomcat_api; proxy_next_upstream 错误超时 http_502 http_503 http_504 http_404; 代理连接超时1; } 听80; 听443 ssl; ssl_certificate /etc/rapidssl/live/api.hotcoldwarm.com/fullchain.pem; ssl_certificate_key /etc/rapidssl/live/api.hotcoldwarm.com/privkey.pem; 包括/etc/rapidssl/options-ssl-nginx.conf; 如果 ($scheme != "https") { 返回 301 https://$host$request_uri; } }
谢谢。
答案1
您可能需要考虑proxy_intercept_errors on;
选项。然后配置自定义error_page
。查看答案https://stackoverflow.com/a/8715597/434255