uwsgi部署到nginx出现invalid request block size: 4161 (max 4096)...skip问题(亲测)
http://50vip.com/419.html
?
使用Flask制作一個網(wǎng)頁平臺之后,登陸使用openid登陸,然后使用uwsgi服務部署到nginx上,運行起來沒有什么問題,但是偶爾在登陸的時候出現(xiàn)502的錯誤,一般登陸成功之后后面的任何操作都不會出錯。
查看uwsgi的log之后,發(fā)現(xiàn)出現(xiàn)這樣的一個錯誤:
invalid request block size: 4161 (max 4096)...skip
之前一個沒有去詳細搜索過,也沒有具體去看錯誤產(chǎn)生的原因,因為只是偶爾出現(xiàn),并且有時候重試的時候是可以登陸的,所以沒有太多的去關(guān)注,今天因為在會議演示的過程中又出現(xiàn)這個問題,所以不得不重視了。
搜索一下,其實問題很簡單:url地址長度超過了4096個字符,而4096就是uwsgi配置中buffer-size的默認值,所以只需要將buffer-size改大一點即可。
我是使用uwsgi -x 指定uwsgi配置文件來啟動服務器的,所以只需要修改成以下方式啟動即可:
uwsgi -x platform.uwsgi.xml --buffer-size 32768
即在后面增加一個?--buffer-size 32768
?
問題基本就解決了,至于為什么這個問題是偶爾出現(xiàn)?那是因為openid登陸的時候會攜帶一個參數(shù)叫next_url,這個地址是用來指定登陸成功之后返回到哪里地址,如果這個next_url太長就會導致url地址超過4096,有時候next_url=/,即網(wǎng)站根地址,url地址長度就不會超過4096。另外還和openid返回的登陸人信息長度有關(guān)系,導致有些人從來不會出現(xiàn)這個錯誤,有些人偶爾出現(xiàn)這個問題。
來源:https://blog.csdn.net/hshl1214/article/details/47294657/
總結(jié)
以上是生活随笔為你收集整理的uwsgi部署到nginx出现invalid request block size: 4161 (max 4096)...skip问题(亲测)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS7中使用yum安装Nginx
- 下一篇: nginx + uWSGI 提高 Dja