2024-06-01 12:43:59 发布
网友
我已经成立了uwsgi为nginx后面的django服务。然后我在django设置中更改数据库,但是uwsgi仍然显示带有旧数据库的站点。
我也试过this suggestion并添加了
touch-reload = /etc/uwsgi/apps-available/django.ini
到ini文件。但在重启uwsgi并触摸django.ini之后,它仍然服务于旧站点。我试着去激活virtualenv,也没有机会。所以我真的很困惑很感激你的暗示。
django.ini
来自uWSGI文档关于touch-reload: 如果指定的文件被修改/触摸,则重新加载uWSGI 因此,如果要重新加载settings.py中的更改,应执行以下操作:
touch-reload = /path/to/your/django-project/settings.py
在对uWSGI ini文件中的任何更改重新加载uWSGI之前使用的指令。
仅供参考,您还需要在代码库更改时重新启动uWSGI,可以使用py autoreload指令: http://uwsgi-docs.readthedocs.org/en/latest/Options.html#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工作正常。
touch /home/www-data/djcode/metCCS/metCCS/settings.py
贝尔特的答案解决了您的问题,原因是uWSGI只能在主进程模式下运行时优雅地重新启动。 http://uwsgi-docs.readthedocs.io/en/latest/Management.html#reloading-the-server
我只需要将master=true添加到ini文件中,就可以使touch-reload参数工作。
master=true
touch-reload
来自uWSGI文档关于touch-reload: 如果指定的文件被修改/触摸,则重新加载uWSGI 因此,如果要重新加载settings.py中的更改,应执行以下操作:
在对uWSGI ini文件中的任何更改重新加载uWSGI之前使用的指令。
仅供参考,您还需要在代码库更改时重新启动uWSGI,可以使用py autoreload指令: http://uwsgi-docs.readthedocs.org/en/latest/Options.html#py-autoreload 所以你的uwsgi.ini里应该有这样的东西
注意,这些选项不推荐用于生产。 祝你好运!
这是我的uWSGI的配置文件
然后,
touch /home/www-data/djcode/metCCS/metCCS/settings.py
工作正常。贝尔特的答案解决了您的问题,原因是uWSGI只能在主进程模式下运行时优雅地重新启动。 http://uwsgi-docs.readthedocs.io/en/latest/Management.html#reloading-the-server
我只需要将
master=true
添加到ini文件中,就可以使touch-reload
参数工作。相关问题 更多 >
编程相关推荐