nginx系列(十九)nginx处理404

前言
在用nginx代理服务器的时候,会有2种情况返回404.
1.查找静态文件没有找到。
2.反向代理,后端app服务器返回的404.

静态文件查找不到到
在对应的http | server | location里配置错误页面即可,代码如下:
error_page   404  http://pai.suning.com/shanpai/index.htm;

反向代理返回的404错误
当使用最左匹配的时候,请求传到了app服务器,但是没有找到资源,例如:
location   ^~ /pai {
    proxy_pass      http://myserver/shanpai;
}

当随意访问以个代理的地址: /pai/1/2/3/4/5/6/resource.html
这个时候在location里配置    proxy_intercept_errors on;即可,这样,就会把错误交给error_page属性处理了。
location   ^~ /pai {
    # 代理处理错误,默认是关闭,否则直接返回app的错误页面
proxy_intercept_errors on;
    proxy_pass      http://myserver/shanpai;
}

高级架构
当然,反向代理返回404统一返回错误页面是一种方式,但是有更好的办法。就是减小代理范围,使用精确匹配的方式。
location用"="号来处理,这样可以提高app服务器的性能。不过增加的代理配置工作量。所以两种方式各有利弊。

参考文章
http://www.51ou.com/browse/linuxjg/33046.html

你可能感兴趣的:(nginx系列(十九)nginx处理404)