Python 更改django设置后,uwsgi不会重新加载
我已经建立了uwsgi为nginx背后的django服务。然后,我在django设置中更改了数据库,但uwsgi仍然使用旧数据库显示站点 我也试着补充说Python 更改django设置后,uwsgi不会重新加载,python,django,uwsgi,Python,Django,Uwsgi,我已经建立了uwsgi为nginx背后的django服务。然后,我在django设置中更改了数据库,但uwsgi仍然使用旧数据库显示站点 我也试着补充说 touch-reload = /etc/uwsgi/apps-available/django.ini 到ini文件。但在重新启动uwsgi并触摸django.ini之后,它仍然为旧站点提供服务。我试图停用并重新激活virtualenv,也没有机会。所以我真的很困惑,感谢你的提示 来自uWSGI文件关于: 如果修改/触摸了指定的文件,请重新加
touch-reload = /etc/uwsgi/apps-available/django.ini
到ini文件。但在重新启动uwsgi并触摸django.ini之后,它仍然为旧站点提供服务。我试图停用并重新激活virtualenv,也没有机会。所以我真的很困惑,感谢你的提示 来自uWSGI文件关于:
如果修改/触摸了指定的文件,请重新加载uWSGI
因此,如果要在settings.py中重新加载更改,应执行以下操作:
touch-reload = /path/to/your/django-project/settings.py
在uWSGI ini文件中的任何更改上重新加载uWSGI之前使用的指令
仅供参考,如果您需要在代码库发生更改时重新启动uWSGI,您也可以使用py autoreload指令:
所以在你的uwsgi.ini中应该有这样的东西
py-autoreload = 1
注意,这些选项不建议用于生产。
祝你好运 这是我的uWSGI配置文件
wsgi-file = /home/www-data/djcode/metCCS/metCCS/nginx/wsgi.py
processer = 4
threads = 2
stats = 127.0.0.1:6000
enable-threads = true
master = true
harakiri = 30
socket = /usr/share/nginx/html/ng-sock/metCCS.sock
chmod-socket = 775
uid = www-data
gid = www-data
touch-reload = /home/www-data/djcode/metCCS/metCCS/settings.py
然后,
touch/home/www-data/djcode/metCCS/metCCS/settings.py
工作正常。贝尔特的答案解决了您的问题,原因是uWSGI在主进程模式下运行时只能正常重启。
我只需要将
master=true
添加到我的ini文件中,就可以让touch-reload
参数工作。你这个摇滚老兄!