本文详细介绍了Nginx502坏网关错误的原因及解决方法。原文中的详细介绍根据示例代码非常详细,对大家的学习培训或者工作都有一定的参考价值,朋友们一定要参考。
NGX502坏网关的错误已经遇到好几次了。这里有记录,备忘录,呵呵。
会有很多种情况,502错误。下面说说情况吧。
I.fastcgi缓冲区设置得太小
有一个错误。首先,你要搜索nginx的日志文档。文件目录是/var/log/nginx。在日志中发现以下错误。
2013/01/1713:33:47[错误]15421#0:*16从上游读取响应标头时,上游发送了太大的标头
看了一下材料,疏忽是nginx缓冲区的一个bug造成的,很有可能是人人网站的网页消耗占用了太多的缓冲区。
我上网搜索解决方案,在国外网站看到了一个提高缓冲的方法,彻底杜绝了Nginx502坏网关的问题。通过以下方式:
http{ ... fastcgi_buffers816k; fastcgi_buffer_size32k; ... }请根据web服务器历史悠久的网站的状态独立展开两项。
其次,经销商缓冲区设置得太小
如果你应用nginx反向代理,如果头太大,超过默认设置1k,就会造成所说的上游发来太大的头(简而言之,nginx会解决外部对后端开发的要求,后端开发返回的头很大,nginx解决不了就会造成502。
server{ listen80; server_name*.lxy.me; location/{ ###############加上这3行 proxy_buffer_size64k; proxy_buffers3232k; proxy_busy_buffers_size129k; ###############加上这3行 proxy_set_headerHost$host; proxy_set_headerX-Real-IP$remote_addr; proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for; ............ }三。php-cgi的默认设置是进程太少
整个安装应用程序的过程中有一个502问题。一般默认设置是5个php-cgi进程,由于phpcgi进程不足可能导致502。您必须更改/usr/local/PHP/etc/PHP-fpm.conf以适度增加其中的max_children值。是的,也有可能是max_requests值不够。必须指出的是,这个设备项占用了大量的运行内存。请根据服务器的配置进行设置。否则很可能适得其反。
四。php实现请求超时
实现php请求超时,更改/usr/local/php/etc/php.ini将max_execution_time改为300。
五、nginx的等待时间已经超时
部分PHP程序的执行时间超过了Nginx的等待时间,可以适度增加nginx.conf环境变量中FastCGI的超时时间。
http{ fastcgi_connect_timeout300; fastcgi_send_timeout300; fastcgi_read_timeout300; ..... }文章里的内容就这些了。期待对大家的学习和培训有所帮助,也期待大家的应用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)