2012-03-19 25 views
0

我的棧是使用spawn-fcgi運行python web.py fast-cgi腳本的nginx。我使用runit來保持進程作爲守護進程保持活動狀態。我正在使用unix套接字來描述spawed-fcgi。如何正常地爲nginx重新加載spawn-fcgi腳本

以下是我在/ 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 

我需要將更改推送到生產服務器。我使用paramiko ssh到框中並更新index.py腳本。

我的問題是,我如何優雅地重新加載index.py使用最佳實踐更新到新的代碼。

難道我用:

sudo /etc/init.d/nginx reload 

難道我重啓了runit腳本: 須藤SV開始MYSERVER

還是我同時使用:

sudo /etc/init.d/nginx reload 
sudo sv start myserver 

或者沒有以上?

回答

1

基本上你必須重新啓動載入你的Python腳本的進程。這是spawn-cgi而不是nginx本身。 nginx只能通過Unix套接字與spawn-cgi進行通信,並且如果由於重新啓動spawn-cgi進程而丟失連接,它將很高興地重新連接。

因此,我會建議一個簡單的sudo sv restart myserver。無需重新啓動/重新加載nginx本身。