2012-03-19 1 views
0

Мой стек - nginx, который запускает скрипты python web.py fast-cgi с использованием spawn-fcgi. Я использую runit, чтобы поддерживать процесс как демон. Я использую unix sockets fior the spawed-fcgi.Как изящно перезагрузить скрипт spawn-fcgi для nginx

Ниже приведен сценарий runit под названием myserver в/etc/sv/myserver с файлом запуска в/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 только взаимодействует с spawn-cgi через сокет Unix и будет счастливо повторно подключиться, если соединение будет потеряно из-за перезапуска процесса spawn-cgi.

Поэтому я бы предложил простой sudo sv restart myserver. Не нужно перезапускать/перезагружать сам nginx.