以下是我的php-fpm配置:
location @site {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_intercept_errors on;
error_page 404 /404;
}
因为启用了fastcgi_intercept_errors,当我的PHP路由器返回404时,Nginx将重定向到/ 404.好.
但是因为/ 404是由我的PHP应用程序生成的,并且我的PHP应用程序正确设置了404响应代码,所以Nginx将尝试再次处理错误! (显然以循环结束)
这个问题有方法解决吗?
最佳答案
nginx这样做是因为你告诉了它.
fastcgi_intercept_errors on;
这意味着nginx will not serve error responses generated by PHP,但是让nginx处理它们.因此,你进入无限循环.
要解决此问题,请删除此指令(默认为关闭)或将其明确设置为off.