当前位置: > Linux服务器 > nginx >

解决nginx 502 bad gateway

时间:2016-09-10 14:04来源:linux.it.net.cn 作者:IT
nginx 502 bad gateway
 
可以采取客户端强制刷新的方法,但是真正的解决要么改配置或者放CDN上。
 
 
 遇到这个问题,首先是有人发现可以加index.html访问,因为我们是线上网站,没有太多时间去研究,所以先临时这样;
然后,有人提出可以Ctrl+F5刷新说是服务器上缓存异常,这样还真解决问题了;
后面运维建议还是放CDN上才是长久之计!
 
下面是网上其他人的解决方案:
 
我们在使用nginx的时候有不少问题出现,首先我们就来解决下nginx 502错误的问题
 
经 过分析将nginx的error log打开,发现”pstream sent too big header while reading response header from upstream”这样的错误提示,查阅了一下资料,大意是nginx缓冲区有一个bug造成的,我们网站的页面消耗占用缓冲区可能过大
 

我们是nginx反向代理
proxy是nginx作为client转发时使用的,如果header过大,超出了默认的1k,就会引发上述的upstream sent too big header (说白了就是nginx把外部请求给后端apache ,apache返回的header  太大nginx处理不过来就导致了。

 

  server {
        listen       80;
        server_name  *.xywy.com ;

        large_client_header_buffers 4 16k;

        #charset koi8-r;

        # access_log off;

        location / {

#添加这3行 ,
                proxy_buffer_size 64k;
                proxy_buffers   32 32k;
                proxy_busy_buffers_size 128k;

           proxy_set_header Host $host;
           proxy_set_header X-Real-IP       $remote_addr;
           proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

           set $baiduspider '';

           if ( $http_user_agent ~ Baiduspider) {
              set $baiduspider Baidu;
          }

............

 

 如果是 nginx+PHPcgi 就该 

fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on
011/01/07 11:12:57 [error] 10770#0: *38585340 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 116.22.131.154, server: *.xywy.com, request: "GET /ysmp/index.php?did=124994 HTTP/1.0", upstream: "http://127.0.0.1:8080/ysmp/index.php?did=124994", host: "xywy.yn16.com"
 

后来原来那错误没了出了新错误了 upstream timed out 超时?

server {
        listen       80;
        server_name  *.xywy.com ;
  large_client_header_buffers 4 16k;
        client_max_body_size 300m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
                proxy_buffer_size 64k;
                proxy_buffers   4 32k;
                proxy_busy_buffers_size 64k;
                proxy_temp_file_write_size 64k;
        #charset koi8-r;

        # access_log off;

后来参数我又改了下 就好了。。。
 

 可以参考:


 http://www.cnblogs.com/derekchen/archive/2011/02/21/1959626.html

http://wiki.nginx.org/NginxHttpProxyModule

http://blog.sina.com.cn/s/blog_5dc960cd0100i4mt.html


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容