Nginx作为代理服务器如何响应后端服务器的status code

来源:互联网 发布:爱普生打印软件下载 编辑:程序博客网 时间:2024/06/06 02:14

描述

  Nginx经常被人用作代理服务器。在工作中碰到了这么一种情况,Nginx作为后端Apache服务的代理当Apache服务器发生处理错误时,也就是说在response statsu code 是40x和50x系的时候,希望服务器能检测到,并且执行一个PHP代码,发送邮件给管理者。结果由于对Nginx的配置不是很熟悉只是在Nginx的配置文件上error_page 400 401 402 403 501 502 503 504 /50x.php;

想当然的认为没有问题,也没用仔细的测试,结果运行了一段时间发现,即使Apache返回40x和50x,Nginx也不执行50x.php文件

后来我调查了一下发现,少配置了一项proxy_intercept_errors这个选项。这个选项默认是off的。这个选项的意思是,当Nginx作为代理服务器时,也会处理后端服务器返回的400以上的status code

参考 
http://wiki.nginx.org/HttpProxyModule#proxy_intercept_errors



0 0