uwsgi部署到nginx出现invalid request block size: 4161 (max 4096)...skip问题
2015-08-05 11:38
627 查看
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返回的登陆人信息长度有关系,导致有些人从来不会出现这个错误,有些人偶尔出现这个问题。
使用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返回的登陆人信息长度有关系,导致有些人从来不会出现这个错误,有些人偶尔出现这个问题。
相关文章推荐
- 在Linux和Windows系统上安装Nginx服务器的教程
- nginx源码编辑带第三方模块lua
- Nginx的启动、停止、平滑启动、平滑升级
- linux环境安装Nginx
- tornado + supervisor + nginx 的一点记录
- Apache与Nginx的优缺点比较
- Nginx+fastcgi 部署Django项目
- Django+uwsgi+nginx配置详解
- Nginx Location配置总结及基础最佳实践
- nginx禁止访问某个后缀名的文件
- nginx源码分析1———进程间的通信机制五(文件锁)
- 在阿里云服务器(ECS)上从零开始搭建nginx服务器
- Nginx 笔记与总结(7)Location:正则匹配
- Nginx负载均衡配置实例详解
- nginx搭建流媒体服务器的方法详解
- Nginx+Keepalived实现Web服务器负载均衡
- Nginx+Keepalived实现Web服务器负载均衡
- Ubuntu下nginx的编译与安装
- nginx如何设置访问跳转到一个固定页面
- fast_nginx_module二次开发_结合imageMagick