Как изящно перезагрузить скрипт spawn-fcgi для nginx
Мой стек nginx, который запускает скрипты python web.py fast-cgi, используя spawn-fcgi. Я использую runit, чтобы поддерживать процесс в качестве демона. Я использую unix-сокеты для spawed-fcgi.
Ниже приведен мой скрипт 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: sudo sv start 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.