【问题标题】:How to gracefully reload a spawn-fcgi script for nginx如何优雅地为 nginx 重新加载 spawn-fcgi 脚本
【发布时间】:2012-04-03 20:29:37
【问题描述】:

我的堆栈是 nginx,它使用 spawn-fcgi 运行 python web.py fast-cgi 脚本。我正在使用 runit 来保持进程作为守护进程存活。我正在使用生成的 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 ssh 进入盒子并更新 index.py 脚本。

我的问题是,如何使用最佳实践优雅地重新加载 index.py 以更新到新代码。

我是否使用:

sudo /etc/init.d/nginx reload

我是否重新启动 runit 脚本: sudo sv 启动我的服务器

还是两个都用:

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

或者以上都不是?

【问题讨论】:

    标签: nginx spawn-fcgi


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-09-26
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 2017-04-14
      • 1970-01-01
      相关资源
      最近更新 更多