我在site-available中创build了一个新的conf文件(并且将它链接到了sites-enabled中),现在我想在不重置nginx服务器的情况下“安装”那个conf文件。
作为root用户,我可以运行nginx -c file.conf因为这几乎是我想要的; 然而,启用网站的conf文件似乎在nginx启动时在其他一些已定义的上下文中运行,因为运行该命令时总会遇到以下错误:
$ nginx -c /etc/nginx/sites-available/alpha 2010/09/30 02:32:13 [emerg] 31769#0: unknown directive "server" in sites-available/alpha:1
我怎样才能dynamic运行这个新的conf文件?
$ nginx -v nginx version: nginx/0.6.32 $ cat /etc/issue Debian GNU/Linux squeeze/sid $ cat /etc/nginx/sites-available/alpha server { listen 443; server_name XXX.net; ssl on; ssl_certificate /etc/nginx/certificates/server.crt; ssl_certificate_key /etc/nginx/certificates/server.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:1338; } }
我正在使用自签名证书。
运行以下命令:
/etc/init.d/nginx reload
(或者更新的debian / ubuntu):
service nginx reload
RABBITZ# nginx -h ...snip... -s signal : send signal to a master process: stop, quit, reopen, reload ...snip...
所以你可以使用OS独立的命令:
nginx -s reload
服务nginx重新加载
请记住,重新加载是任何应用conf的优雅方式。使用重新加载更合适,因为它不会导致任何停机时间(重新启动会造成数毫秒的停机时间,因为它必须停止然后重新启动)。
查找主进程的PID:
ps aux | grep nginx root 22041 0.0 0.2 4808 684 ? Ss 08:14 0:00 nginx: master process /usr/sbin/nginx www-data 22042 0.0 0.4 4976 1044 ? S 08:14 0:00 nginx: worker process root 22044 0.0 0.3 3344 812 pts/1 S+ 08:14 0:00 grep --color=auto nginx
并发送HUP:
kill -HUP 22042