您好我使用UWSGI和Nginx使用以下教程http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html部署了Django 一切都运行良好。我在更新python代码时遇到了挑战。我不知道部署新更改的有效方法。 在点击和试用之后,我使用以下命令来部署
git pull; sudo service uwsgi stop; sudo service nginx restart; sudo service uwsgi restart; /usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals
这个命令工作正常。但我面临以下问题
我想知道应该运行哪些命令来反映python代码中的更改。 PS:在我以前的APACHE Django设置中,我只是用来重启apache,是否可以通过重启nginx来反映更改。
答案 0 :(得分:1)
请在后台运行uwsgi查看此内容。创建.ini文件/etc/uwsgi/sites/projectname.ini。该脚本看起来像这样(对于ubuntu 16.04):
[uwsgi]
project = projectname
base = projectpath
chdir = %(base)/%(project)
home = %(base)/Env/%(project)
module = %(project).wsgi:application
master = true
processes = 5
socket = %(base)/%(project)/%(project).sock
chmod-socket = 666
vacuum = true
(对于ubuntu 16.04):
然后在/etc/systemd/system/uwsgi.service上创建以下systemd脚本:
[Unit]
Description=uWSGI Emperor service
After=syslog.target
[Service]
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target
使用这个新的uWSGI服务刷新systemd init系统的状态
sudo systemctl daemon-reload
要启动脚本,您需要运行以下命令:
sudo systemctl start uwsgi
为了在重启时启动uWSGI,您还需要:
sudo systemctl enable uwsgi
您可以使用以下方法检查其状态:
systemctl status uwsgi
(对于ubuntu 14.04):
为uWSGI创建一个upstart脚本:
sudo nano /etc/init/uwsgi.conf
然后在上面创建的文件中添加以下行:
description "uWSGI application server in Emperor mode"
start on runlevel [2345]
stop on runlevel [!2345]
setuid user
setgid www-data
exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
答案 1 :(得分:0)
试试这个:
git pull
python manage.py migrate # to run any migrations
sudo service uwsgi restart
按Ctrl + Z,然后按bg
+输入
这应该在后台运行该过程。
如果有效,请告诉我。