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