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