首页 > 其他 > 详细

nginx自定义报错页面中遇到的问题

时间:2017-02-22 12:45:26      阅读:152      评论:0      收藏:0      [点我收藏+]

1.nginx上必须先配置 fastcgi_intercept_errors on后再配置error_page 500 502 503 504 /50x.html;error_page 404 /404.html;自定义报错页面才会生效。

 

2.如果自定义报错的页面丢失或不存在,会默认调用nginx内部默认的报错页面。例如:

技术分享

 

3.如果想要改动nginx内部默认的报错页面,需要修改在linux环境下nginx/src/html/下的.c文件(不建议修改);windows下无法修改,已经打包成.exe文件。

 

4. 与框架(laravel)配合使用有时死循环跳转的假像。例如当你的发生了500错误时候,启用fastcgi_intercept_errors on后,如自定义的error_page文件丢失,例如上面定义的50x.html不存在。

nginx会尝试再次调用请求且不携带请求参数。如继续不存在,则会返回内部默认的报错页面在nginx尝试调用请求的时候,如果你代码内部加入自定义验证例如laravel的控制器里面的validate方法。

技术分享因为没有携带请求参数,出现验证不通过。laravel的处理机制(具体可以看下laravel源码)会调用redirect()->to,

则有可能出现死循环假象,一直 redirect。

 

nginx自定义报错页面中遇到的问题

原文:http://www.cnblogs.com/JackDeng/p/6428189.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!