查看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;
   }
}

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。