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