Nginx 502 Bad Gateway 的错误的解决方案

Nginx 502 Bad Gateway 的错误的解决方案我用的是nginx反向代理Apache,直接用Apache不会有任何问题,加上nginx就会有部分ajax请求502的错误,下面是我收集到的解决方案。一、fastcgi缓冲区设置过小出现错误,首先要查找nginx的日志文件,目录为/var/log/nginx,在日志中发现了如下错误2013/01/1713:33:47[error]15421#0:*16upstr…

大家好,又见面了,我是你们的朋友全栈君。

我用的是nginx反向代理Apache,直接用Apache不会有任何问题,加上nginx就会有部分ajax请求502的错误,下面是我收集到的解决方案。

一、fastcgi缓冲区设置过小

出现错误,首先要查找nginx的日志文件,目录为/var/log/nginx,在日志中发现了如下错误

2013/01/17 13:33:47 [error] 15421#0: *16 upstream sent too big header while reading response header from upstream

大意是nginx缓冲区有一个bug造成的,我们网站的页面消耗占用缓冲区可能过大。网上查找了一下解决方法,在国外网站看到了一个增加缓冲区的方法,彻底解决了Nginx 502 Bad

Gateway的问题。方法如下:

http {
    ...
    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;
    ...
}

可根据服务器已经网站的情况自行增大上述两个配置项。

二、代理缓冲区设置过小

如果你使用的是nginx反向代理,如果header过大,超出了默认的1k,就会引发上述的upstream sent too big header (说白了就是nginx把外部请求给后端处理,后端返回的header太大,nginx处理不过来就会导致502。
(我自己的就是这个问题)

server {  
    listen 80;   
    server_name shop.xxx.com;  
     proxy_set_header Host $host:$server_port;    
    proxy_set_header X-Real-Ip $remote_addr;    
    proxy_set_header X-Forwarded-For $remote_addr;   
   
    location / {  
	#这三行 start
	proxy_buffer_size 64k;
	proxy_buffers   32 32k;
	proxy_busy_buffers_size 128k;
	#这三行 end
        proxy_set_header Host $host:$server_port;    
        proxy_set_header X-Real-Ip $remote_addr;    
        proxy_set_header X-Forwarded-For $remote_addr;   
        proxy_pass http://127.0.0.1:82;  
          
    }  
      
}  

三、默认php-cgi的进程数设置过少

在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为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的timeout时间

http  {
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  ......
  }

六、被代理的服务无法响应或者已停止

如下配置,如果http://192.168.16.129:80服务无法响应或者已停止也会报502

 location / {

 
            proxy_set_header Host $host;
            proxy_set_header X-Real-Ip $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_pass http://192.168.16.129:80;
        }

希望我收集的能给大家一些帮助

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148691.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android P系统访问http请求最简单解决方案

    在sdk28也就是P系统请求是http协议的话会报错:java.net.UnknownServiceException:CLEARTEXTcommunication**notpermittedby**是我的包名这是因为Google在sdk28做了限制加强了安全为保证用户数据和设备的安全,Google针对下一代Android系统(AndroidP)的应用程序…

    2022年4月8日
    51
  • 保研面试/考研复试:英语口语面试必备话题及常用句型句式整理(一)[通俗易懂]

    目录StudiesAFFIRMATIVENEGATIVEWorkForAgainstHometownAFFIRMATIVENEGATIVESportFORAGAINSTStudiesAFFIRMATIVEMyuniversityhasagreatreputation.Thisisaprettypromisingfield.Itenablesmetofulfillmypotential.Myprofessorsarereallythoughtfuland

    2022年4月9日
    77
  • mac版phpstorm激活码2022-激活码分享

    (mac版phpstorm激活码2022)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~4KDDGND3CI-eyJsaWNlbnNlSWQiOi…

    2022年4月1日
    523
  • java打包jar和war的区别[通俗易懂]

    java打包jar和war的区别[通俗易懂]jar和war包,都是为了项目的部署和发布,把项目打包,同茶馆在部署打包的时候,在里面加上部署的信息(把代码和依赖压缩在成一个编译器可以直接使用的压缩文件,eg:tomcat先解压,编译,缺点是随着文件的增加,启动变慢)相同点:都是压缩文件,用解压文件可以解压不同点:war是javaweb打的包,jar是java打的包 jar只用于java来写的项目打包,里面只有编译后的class…

    2022年5月18日
    80
  • mybatisplus的mapper使用(华为畅享8plus)

    IService 注释 BaseMapper 注释 进一步封装:采用get查询单行,remove删除,list查询集合,page分页 DDML booleansave(Tentity); 选择字段,策略插入 intinsert(Tentity); 插入一条记录 booleansaveBatch(CollectionentityList); 批量插入 …

    2022年4月10日
    68
  • android加密参数定位方法

    android加密参数定位方法作者正在编写一本爬虫逆向相关的书籍《书名还没有想好》。目前刚写了50页,上图是文章目录的一部分,想问一下大家现在对哪阶段的内容会更感兴趣,或者哪部分的内容会更有学习力,或者帮我想个书名。可在本文末留言告知,感谢大家。下面开始本文正文内容。在逆向一个Android程序时,如果只是盲目的分析需要阅读N多代码才能找到程序的关键点或Hook点,本文将分享一下如何快速的找到APP程序的加密参数位置,其实不论是找关键位置、找hook点,找加密参数、代码逻辑追踪,都是类似的处理方法。巧用搜索-静态分析

    2022年5月17日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号