upstream set too big header & Nginx 502 Bad Gateway

Table of Contents

Table of Contents

今天在本地環境中進行網頁開發時,一打開某個網頁時出出現了Nginx 502 Bad Gateway的頁面。 開發環境是php+Nginx,因此直接查看nginx的error.log,發現了以下錯誤訊息:

upstream set too big header ...

大致上的意思是回傳結果中的標頭資料過大,而導致網頁無法處理的問題。


查到的解決方法

  1. 標頭資料精簡化

由於不太熟悉內部處理跟Cookie的使用,此法作罷。

  1. 從系統設定下手,調整Buffer緩衝區的大小讓處理能正常執行。

遵行2)的方針,調整Buffer緩衝區的大小

進入伺服器環境中修改Nginx設定檔。

vi /etc/nginx/nginx.conf

proxy_buffers 8 32k  #default 8 4k|8k
proxy_buffer_size 32k #default 4k|8k
fastcgi_buffers 8 32k  #default 8 4k|8k
fastcgi_buffer_size 32k #default 4k|8k

看狀況調整32k的數字,原本是8改成32後解決問題,若無法解決可以再把數字增大試試。

上述兩段設定追加(或是修改)後,記得重新啟動Nginx

重啟完成後,在打開網頁後發現502錯誤已消失,網頁正常顯示。