本文共 1898 字,大约阅读时间需要 6 分钟。
Nginx作为高性能的反向代理服务器,在处理上游服务器返回的错误响应时,可以通过proxy_intercept_errors指令和error_page模块进行智能拦截和定制处理。本文将详细介绍如何配置Nginx,实现对上游服务器返回的404和50x错误页面的自定义处理。
主服务(Nginx:80)
/usr/local/nginx/sbin/nginx。上游服务(Nginx:8012)
/usr/local/nginx_8012/nginx。上游服务器提供了多种错误页面来处理404和50x错误:
需要注意的是,404.html和50x.html是用于Nginx:80服务的配置,而404_default.html和50x_default.html则是用于Nginx:8012服务的配置。
server { listen 80; server_name example.com; location / { proxy_intercept_errors on; error_page 404 /404.html; error_page 50x /50x.html; }} server { listen 8012; server_name example.com; location / { proxy_intercept_errors on; error_page 404 /404_default.html; error_page 50x /50x_default.html; }} proxy_intercept_errors开启
error_page模块
error_page 404 /404.html;:当上游服务器返回404错误时,Nginx会请求404.html文件。error_page 50x /50x.html;:当上游服务器返回50x错误(如500、502、503、504)时,Nginx会请求50x.html文件。404.html文件不存在。404.html为404_not_exists.html。50x_default.html文件不存在。error_page 404 200 /custom_404.html;
custom_404.html文件。@404fallback之间需保留空格。error_page 301 /redirect.html;error_page 302 /redirect.html;
redirect.html文件。通过合理配置Nginx的proxy_intercept_errors和error_page模块,可以实现对上游服务器返回的404和50x错误页面的自定义处理。这种方式不仅可以美化错误页面,还可以通过修改响应状态码来优化用户体验。
转载地址:http://kcti.baihongyu.com/