[nginx]代理404跳转

1.nginx作为反向代理,如果代理请求的页面不存在,返回404,但是浏览器中一片空白。

要求:将404跳转到指定页面。

在server段添加:

error_page 404 /;

不能生效,原因是需要添加一条proxy_intercept_errors on;语句。

同理对于动态页面的404响应,需要添加fastcgi_intercept_errors on;语句。

2.error_page语法

error_page code ... [ = [ response ]] uri

例如以下:

error_page   404          /404.html;
error_page   502 503 504  /50x.html;
error_page   403          http://example.com/forbidden.html;
error_page   404          = @fetch;

还可以修改状态码:

error_page 404 =200 /empty.gif;
error_page 404 =403 /forbidden.gif;

还可以不指定状态码,直接使用指定error handler的返回状态作为状态码。

error_page   404 = /404.php;

还可以跳转到特定的location处理错误页面

location / (
    error_page 404 @fallback;
)
 
location @fallback (
    proxy_pass http://backend;
)

参考:

http://wiki.nginx.org/HttpCoreModule#error_page

原文地址:https://www.cnblogs.com/silenceli/p/3558895.html