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