今天有用戶報告了一個issue:html
當他訪問咱們的網站時出現瞭如下錯誤:chrome
可是我訪問一樣的地址卻沒有這個問題,連續訪問屢次,查看uWSGI日誌發現出現如下ERROR:瀏覽器
原來是請求頭的大小超出了uWSGI的buffer大小,默認時4K,咱們沒有作過修改,既然不夠大,那就給大點唄,cookie
修改uwsgi.ini :增長:併發
buffer-size = 32768網站
重啓uWSGI之後,用戶問題獲得解決.url
可是問題來了,爲何個人訪問沒有出現這個問題呢?或者上爲何用戶會遇到這個問題,接下來開始查找緣由:.net
咱們的服務域名是二級域名: xxx.abc.com (域名涉及保密,這裏作了修改),公司還有一個網站是頂級域名:abc.com3d
用戶是先在頂級域名登陸後作了操做,有訪問咱們二級網站,就出現瞭如下情景:調試
在請求咱們的二級域名網站時使用了兩組cookie,第一組是頂級域名的cookie信息,第二組纔是咱們須要的本網站cookie信息:
在頂級域名中,cookie信息長度很長,個數還比較多,致使兩組cookie信息總大小超過了uWSGI的默認設置
爲了方便理解,這裏用baidu作解釋:咱們先請求www.baidu.com,能夠訪問到百度首頁:而後在url欄點擊以下紅色標記(我用的是chrome瀏覽器):
能夠看到這樣的結果:
這裏的baidi.com和www.baidu.com都指頂級域名,而後咱們訪問百度貼吧:https://tieba.baidu.com/index.html
一樣點擊🔒圖標選擇cookie後看到以下結果:
和咱們遇到的狀況是同樣的,這是由於二級域名會共享頂級域名的cookie,在請求中一併發送,能夠經過F12調試看到,咱們刷新貼吧首頁的請求附帶的cookie信息:
其中一部分是頂級域名baidu.com的cookie:
另外一部分是tieba.baidu.com的cookie信息:
這裏涉及到的更多知識點能夠參考如下文章: