如何为nginx优雅地重新加载spawn-fcgi脚本

时间:2012-03-19 10:43:29

标签: nginx spawn-fcgi

我的堆栈是使用spawn-fcgi运行python web.py fast-cgi脚本的nginx。我使用runit来保持进程作为守护进程活着。我正在使用spaIX-fcgi的unix套接字。

以下是我在/ etc / sv / myserver中名为myserver的runit脚本,其中运行文件位于/ etc / sv / myserver / 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

我需要将对sripts的更改推送到生产服务器。我使用paramiko进入框中并更新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

或者以上都没有?

1 个答案:

答案 0 :(得分:1)

基本上你必须重新启动加载Python脚本的进程。这是spawn-cgi而不是nginx本身。 nginx只通过Unix套接字与spawn-cgi进行通信,如果由于重新启动spawn-cgi进程而导致连接丢失,它将很乐意重新连接。

因此我建议一个简单的sudo sv restart myserver。无需重新启动/重新加载nginx本身。