需求背景是:
网站基于java,使用tomcat搭建环境,使用nginx作为前端代理。若不做特殊处理,当访问出现404时,将会返回tomcat的404页面,现要求404页面为nginx的自定义页面,并非tomcat自带的404页面。
nginx的配置文件内容如下:
server {
listen 80;
server_name www.xxx.com;
proxy_intercept_errors on;
recursive_error_pages on;
location / {
error_page 404 @404;
proxy_pass :8080;
proxy_set_header Host $host;
}
location @404 {
root /tmp/111/;
error_page 404 /404.html;
}
}
其中红色字体的两行配置非常关键,404.html的位置在/tmp/111/404.html。
proxy_intercept_errors on; 当上游服务器响应头回来后,可以根据响应状态码的值进行拦截错误处理,与error_page 指令相互结合。用在访问上游服务器出现错误的情况下。
recursive_error_pages on; 可以让下面的location @404生效。
- END -
出品 | 阿铭linux
个人号:
验证:
提升自己,才是世界上最稳健的投资。