多个Django应用只启动一个uwsgi进程时经常出现502的问题

上篇文章中说了如何只启用一个uwsgi进程服务多个Django应用,虽然成功了,但是却有一个很大的问题:经常出现502。

刷新一下说不定又好了,再刷又502,就这样循环往复。

刚开始也不知道什么原因,一直调配置参数,不过基本没有什么改观,后来仔细查看uwsgi的启动参数,发现了一个参数:map-socket,这个参数的意义为:当你将一个uWSGI实例绑定到多个socket,你可以指定某些工作进程到某些socket来提高服务质量。

它的用法如下:

[uwsgi]
socket = /tmp/uwsgi0.sock
socket = /tmp/uwsgi1.sock
workers = 6
map-socket = 0:1,2,3
map-socket = 1:4,5,6
 
上面的意思是,开启6个子进程,1,2,3通过/tmp/uwsgi0.sock来处理;4,5,6通过/tmp/uwsgi1.sock来处理。
Nginx中可以把有的虚拟主机的监听的socket设置为uwsgi0.sock,有的设置成uwsgi1.sock,这样设置之后刷新了很多次都没有再出现502了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值