查看nginx的error.log日志文件发现如下信息:
upstream sent too big header while reading response header from upstream
原因是:
nginx缓冲区有一个bug造成的,网站的页面消耗占用缓冲区可能过大。
 
proxy是nginx作为client转发时使用的,如果header过大,超出了默认的1k,就会引发上述的upstream sent too big header 
说白了就是nginx把外部请求转给后端(如apache),apache返回的header太大,导致nginx处理不过来。
 
解决方法:
代理主机的配置文件中添加如下代码:
upstream site  {
    server 127.0.0.1:8080;
}

server {
    listen 80;

    server_name  www.site.com;

    location / {
        proxy_pass  http://site;
        

        #下面这三段代码是需要添加的。
        proxy_buffer_size 64k;
        proxy_buffers 32 32k;
        proxy_busy_buffers_size 128k;
   }
}