我的堆栈是nginx,它使用web.py -fcgi运行python spawn-fcgi脚本。我使用runit将进程作为守护进程保持活动状态。我使用unix套接字作为spawed-fcgi。
下面是我在/etc/sv/myserver中名为myserver的runit脚本,以及/etc/sv/myserver/run中的run文件。
exec spawn-fcgi -n -d /home/ubuntu/Servers/rtbTest/ -s /tmp/nginx9002.socket -u www-data -f /home/ubuntu/Servers/rtbTest/index.py >> /var/log/mylog.sys.log 2>&1我需要将对脚本的更改推送到生产服务器。我使用paramiko ssh进入机器并更新index.py脚本。
我的问题是,如何使用最佳实践优雅地重新加载index.py以更新到新代码。
我是否要使用:
sudo /etc/init.d/nginx reload我是否要重新启动runit脚本: sudo sv start myserver
或者我两者都使用:
sudo /etc/init.d/nginx reload
sudo sv start myserver或者以上都不是?
发布于 2012-03-20 04:22:19
基本上,您必须重新启动加载Python脚本的进程。这是spawn cgi,而不是nginx本身。nginx仅通过Unix套接字与spawn-cgi通信,如果由于spawn-cgi进程重启而导致连接丢失,nginx将愉快地重新连接。
因此,我建议使用一个简单的sudo sv restart myserver。不需要重新启动/重新加载nginx本身。
https://stackoverflow.com/questions/9768739
复制相似问题