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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html卷轴展开动画,Flash制作卷轴展开的动画

    html卷轴展开动画,Flash制作卷轴展开的动画推荐:Flash制作搞笑QQ表情动画副标题#e#QQ表情已经成为一种流行文化,聊天的时候我们经常会被一些搞怪的QQ表情逗得忍俊不禁。其实这些表情制作的方法并不难,只要掌握一些Flash的基本操作,我们就可以把自己的好创意也制作成表情。本实例来自我自己画的一套圆圆溜溜搞怪表情中的一个,下面是制作过北京奥运会开幕式上那充满诗意的卷轴,以及它所呈现给我们的一幅幅无法言喻的美妙画面,大家一定还记忆犹新吧…

    2022年5月22日
    36
  • calico网络原理、组网方式和使用

    calico网络原理、组网方式和使用calico 网络

    2025年10月11日
    2
  • idea在mac版怎么配置svn_IntelliJ Idea 集成svn 和使用

    idea在mac版怎么配置svn_IntelliJ Idea 集成svn 和使用最近公司的很多同事开始使用IntelliJIdea,便尝试了一下,虽然快捷键与eclipse有些不同,但是强大的搜索功能与“漂亮的界面”(个人认为没有eclipse好看),还是值得我们去使用的。刚开始使用的idea要去集成svn,下载公司的项目。我是用的是TortoiseSVN(小乌龟),下载后安装,然后记住安装路径,我安装的是64位的。TortoiseSVN的下载地址:htt…

    2022年10月17日
    3
  • 卡尔曼滤波 — 从推导到应用(一)「建议收藏」

    卡尔曼滤波 — 从推导到应用(一)「建议收藏」前言卡尔曼滤波器是在估计线性系统状态的过程中,以最小均方差为目的而推导出的几个递推数学等式,也可以从贝叶斯推断的角度来推导。本文将分为两部分:第一部分,结合例子,从最小均方差的角度,直观地介绍卡尔曼滤波的原理,并给出较为详细的数学推导。第二部分,通过两个例子给出卡尔曼滤波的实际应用。其中将详细介绍一个匀加速模型,并直观的对比系统状态模型的建立对滤波的影响。

    2022年6月17日
    39
  • html表白代码大全_跨年倒计时源码

    html表白代码大全_跨年倒计时源码html跨年代码,可直接使用,文中有详细使用说明。

    2022年10月21日
    3
  • 手把手教你学习DSP_硬件设计「建议收藏」

    手把手教你学习DSP_硬件设计「建议收藏」  <<手把手教你学习DSP>>顾卫刚,感觉写的不错,将感兴趣的部分摘录下俩。1、A/D保护及矫正电路  TMS320X2812AD输入为0-3V,用上述电路可以起到钳位作用。当ADC1采样高于3V时,DQ2导通,当小于0V时,DQ1导通。在计算Vref_A和Vref_B时,因为R86的阻值太小,忽略了。2、D/A电路的设计(1)通过PWM…

    2022年6月3日
    44

发表回复

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

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