nginx使用多个服务器重新加载配置

时间:2014-08-25 12:17:39

标签: nginx configuration

我正在孤立地提供一些演示,例如:

/demo1/-- nginx.conf
       |- index.html
       |- ...

#run
/demo1$ sudo nginx -c `pwd`/nginx.conf

/demo2/-- nginx.conf 
       |- index.html
       |- ...

#run
/demo2$ sudo nginx -c `pwd`/nginx.conf

现在我有以下nginx进程:

$ ps aux | grep nginx
root      3434  0.0  0.0  85904  1340 ?        Ss   12:02   0:00 nginx: master process nginx -c /demo1/nginx.conf
nobody     3435  0.0  0.0  86316  2272 ?        S    12:02   0:00 nginx: worker process                                                 
root      5096  0.0  0.0  85904  1344 ?        Ss   11:21   0:00 nginx: master process nginx -c /demo2/nginx.conf
nobody     5097  0.0  0.0  86316  2272 ?        S    11:21   0:00 nginx: worker process 

我相信(告诉我,如果我错了)如果我以这种方式重新加载配置:

$ sudo nginx -s reload

它只会将消息传递给最后一个正在旋转的主进程。

如何在特定主进程上重新加载配置? 阅读manpage后,我认为它与-g选项有关,但我不知道如何处理。我应该指定一个静态PID吗?

以下是我的nginx.conf供参考

user nobody;
worker_processes  1;
events {
    worker_connections 1024;
}
http {
    include /etc/nginx/mime.types;
    server {
        listen      8000;
        location / {
            root    /demoX;
            index   index.html index.htm;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以将信号用于某些PID:

kill -QUIT 3434

重新加载选项是对QUIT信号的引用,它重新加载配置并生成新工作者。