nginx系列(十九)nginx处理404

前言

在用nginx代理服务器的时候,会有2种情况返回404.

1.查找静态文件没有找到。

2.反向代理,后端app服务器返回的404.

静态文件查找不到到

在对应的http|server|location里配置错误页面即可,代码如下:

error_page404http://pai.suning.com/shanpai/index.htm;

反向代理返回的404错误

当使用最左匹配的时候,请求传到了app服务器,但是没有找到资源,例如:

location^~/pai{

proxy_passhttp://myserver/shanpai;

}

当随意访问以个代理的地址:/pai/1/2/3/4/5/6/resource.html

这个时候在location里配置proxy_intercept_errorson;即可,这样,就会把错误交给error_page属性处理了。

location^~/pai{

#代理处理错误,默认是关闭,否则直接返回app的错误页面

proxy_intercept_errorson;

proxy_passhttp://myserver/shanpai;

}

高级架构

当然,反向代理返回404统一返回错误页面是一种方式,但是有更好的办法。就是减小代理范围,使用精确匹配的方式。

location用"="号来处理,这样可以提高app服务器的性能。不过增加的代理配置工作量。所以两种方式各有利弊。

参考文章

http://www.51ou.com/browse/linuxjg/33046.html

相关推荐