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