Nginx+uWSGI+Django出现502和504错误的一种情况和解决办法

这两天在做一个Nginx+uWSGI+Django的项目,在部署到服务器上以后网站没法打开,发现总是出现502 Bad Gateway或504 Gateway Time-out错误。找了很久终于发现就是一个配置上的错误导致的。

首先先确定nginx是不是正常工作的。这时可以试试能不能打开静态资源,例如如果你的网站有一个这样的静态资源:/static/js/base.js,你可以访问http://外网ip/static/js/base.js,如果能显示这个内容,则nginx没有问题。

下一步就是看看uwsgi。发现问题出在它的配置上。在使用uwsgi时有两处需要配置它的端口。

第一处是nginx的conf,在这个conf文件中有一处是:

location / {
            include /etc/nginx/uwsgi_params;
            uwsgi_pass 127.0.0.1:8888;
        }

这里的uwsgi_pass是uWSGI绑定的监听地址。

第二处是uwsgi.ini:

[uwsgi]

socket=0.0.0.0:8010

观察发现这里socket的端口8010和uwsgi_pass的端口8888不一样。要修改成一样的端口才可以。在这里把它改成:socket=0.0.0.0:8888。

修改完以后重启uwsgi.ini发现还不行,发现uwsgi.pid中记录的pid和uwsgi的id不一致,这是修改没生效。所以采用下面的指令强行杀死原来的uwsgi并重启:

killall -s INT uwsgi
ps -ef |grep uwsgi
uwsgi --ini uwsgi.ini
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值