nginx出现502错误

环境

项目使用的是django+gunicorn+supervisor+nginx,具体可以查看这篇文章

问题

经测试发现有时页面会出现502错误,随后计时统计发现当响应时间超过30秒时则会出现502错误,如下:


502错误

猜测

因为使用了nginx,一开始以为是它出现了问题,后来发现nginx的默认配置超时时间都是超过30s的,而且修改了也不起作用。后来就猜测应该是gunicorn出了问题,在google上找了gunicorn的官网:http://docs.gunicorn.org/en/19.3/settings.html ,找到settings中timeout的默认时间真的是30s:

--timeout INT
官网是这么写的,后面的INT为需要你手工修改的实际值。于是按照着官方修改了,因为使用的是supervisor控制shell脚本启动gunicorn,所以我只要修改shell脚本就好,具体的脚本可以看以往的文章。

但是!

修改好后,使用supervisor重启项目,发现项目都跑不起来了!,这是为什么呢?明明是按照官网的来修改的呀!

真相

仔细观察发现,原来使用supervisor控制shell脚本启动,每行配置 后面都需要跟一个反斜杠"",具体在远程连接会显示成如下,类似于w的字符:


shell脚本

结果

重启后发现,当任何任务超过30s时,项目不会报502错误了!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 《老男孩Linux运维》笔记 隐藏Nginx软件版本号 一般来说,软件的漏洞都和版本有关。因此要尽量隐藏对访问用户...
    Zhang21阅读 3,757评论 0 28
  • GitHub 上有一个 Awesome - XXX 系列的资源整理,资源非常丰富,涉及面非常广。awesome-p...
    若与阅读 18,917评论 4 418
  • 庸懒的声线 庸懒的萨克斯 还有 庸懒的猫咪 听着 良辰美景奈何天 为谁辛苦为谁甜 斟满一杯思绪 一饮而进 心情在这...
    金陵一点红阅读 315评论 0 5
  • 创建对象的几种方法 方法一:new Object() 方法二:{} 方法三:function xx() 为对象中添...
    xiaolin_188阅读 221评论 0 0
  • 这是一个发生在我身边真人真事,虽然发生的几率不大,但是我的确相信在别的地方也会有发生,过去会有,将来也一定会有! ...
    飞城阅读 359评论 2 2