原文出處:https://www.cnblogs.com/jpfss/p/10237463.html
便於以后參考我復制了過來!
cookies的值超出了范圍我是說
看看了一下日志
錯誤502 upstream sent too big header while reading response header from upstream
sudo gedit /var/log/nginx/error.log
查看錯誤日志
upstream sent too big header while reading response header from upstream
你去搜這個錯誤,網上的解釋都差不多,無外乎是cookie攜帶的header太多了,讓你設置:
fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;
逐步嘗試。其中fastcgi_buffers 8 128k 這句,fastcgi_buffers 32 32k 這樣更好,內存是整塊分配和釋放的,減少單位k數能盡可能利用。
另外,如果你用nginx做負載均衡的話,改了上述參數是沒用的,要在轉發的配置上,比如以下設置:
location @to_other { proxy_buffer_size 128k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; add_header X-Static transfer; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://backend; #請求轉發 }
加粗的三行才會起作用。
fastcgi_* 可以理解成nginx接受client請求時的響應使用的。proxy是nginx作為client轉發時使用的,如果header過大,超出了默認的1k,就會引發上述的upstream sent too big header。
可以參考:
http://wiki.nginx.org/NginxHttpProxyModule
http://blog.sina.com.cn/s/blog_5dc960cd0100i4mt.html
其它搜索結果可以無視,都是大同小異的。
location ~ \.php$ { fastcgi_buffer_size 128k; fastcgi_buffers 32 32k; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /host/web/$fastcgi_script_name; }
