mysql报错502_Nginx+uWSGI+Django 502 Bad Gateway错误

Ubuntu12.04+Nginx 1.4.4 + Django1.5.2+uWSGI 2.0.8构建两个应用:ChemDes , BioTriangle。

在BioTriangle提交计算服务的时候,超过70秒的计算会弹出502错误。

1.根据错误提示,首先百度,发现可能是Timeout的问题,于是首先查看uWSGI 中,harakiri(形象的叫做切腹,超过这个时间的请求就会被丢弃)。发现本机设置值为1800s。是足够的。

2.再查看Nginx中相关设置:

uwsgi_read_timeout 1800;

uwsgi_send_timeout 300;

proxy_read_timeout 300;

这些值也是足够的。

3.再仔细检查,觉得ChemDes似乎没出现这个问题,那为什么BioTriangle要出现502错误呢?况且Timeout是504错误。

4.再去仔细核对Django与BioTriangle配置信息与log信息。在log信息中发现Biotriangle在提交小任务的时候,并不会报错,但是提交任务过多时候,居然报错,仔细检查发现里面有个mysql错误:_mysql_exceptions.OperationalError (2006,MySQL server has gone away )。

5.查询该错误,两种可能情况:第一,my.cnf中wait_timeout与interactive_timeout值是否够大,查询本机,发现二者值均为28800,也是足够的。第二,执行SQL语句过大或者语句中含BLOB或者LongBLOB字段。设置max_allowed_pocket=10M(本机为1M);该参数的作用是用来控制其通讯缓冲区的最大长度。

6.更改后发现可行了。

7.仔细想想,应该是通讯缓冲区不够大,因为BioTriangle有一个session存储前一步的计算结果,然后转到第二步,所以MySQL的session会报错,弹出502错误。至此完美解决,留此作为参考。

标签:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值