!
也想出现在这里? 联系我们
广告位
当前位置:首页>教程分享>服务器教程>nginx 502 bad gateway错误原因及解决方法

nginx 502 bad gateway错误原因及解决方法

很多情况下会出现502错误。让我们逐案讨论。

一、fastcgi缓冲区设置太小

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

2013/01/17 13:33:47 [错误] 15421#0: *16 上游从上游读取响应标头时发送的标头太大

查看信息,大意是nginx缓冲区有bug。我们网站的页面消耗可能会占用过多的缓冲区。

在网上找到了解决办法,在国外网站上看到了增加缓冲区的方法,彻底解决了nginx 502 bad gateway的问题。方法如下:

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

请根据服务器有网站的情况增加以上两个配置项。

二、代理缓冲区设置太小

如果使用nginx反向代理,如果header过大超过默认的1K,就会触发上面提到的upstream send too big header(说白了就是nginx会将外部请求发送到后端处理。如果后端返回的header过大,nginx会处理失败,导致502。

服务器{
   听80;
   server_name *.lxy.me;
   location / {
###############添加这3行
       proxy_buffer_size 64k;
      proxy_buffers 32 32k;
      proxy_busy_buffers_size 128k;
###############这3行
     proxy_set_header Host $host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
......
}

三、默认PHP CGI设置的进程太少

在安装和使用过程中出现502问题。通常,默认有五个 PHP CGI 进程。可能是phpcgi进程不足造成的。需要修改/usr/local/PHP/etc/PHP FPM Conf设置Max_children值适当增加。它也可能是 max_Insufficient requests 值。需要注意的是,这些配置项会占用大量内存。请根据服务器配置进行设置。否则,可能会适得其反。

四、PHP执行超时

PHP执行超时,修改/usr/local/PHP/etc/PHP Ini Max_execution_Time改为300

五、Nginx等待时间超时

部分PHP程序的执行时间超过了nginx的等待时间,可以在nginx的conf配置文件中适当添加fastcgi的超时时间

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

以上就是本文的全部内容。希望对你的学习有所帮助。

给TA打赏
共{{data.count}}人
人已打赏
服务器教程

centos8停止更新维护后,云服务器更换什么系统?

2021-4-17 18:32:57

服务器教程

日本樱花服务器好不好用,价格怎么样,性能如何?

2021-4-17 18:32:59

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 [email protected] 或点击右侧 私信:吉吉国王 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
OneEase