nginx: como carregar um novo arquivo conf sem reinicializar o nginx

2

Eu criei um novo arquivo conf em sites disponíveis (e o vinculei em sites habilitados) e agora quero "instalar" esse arquivo conf sem redefinir o servidor nginx.

Como root, posso executar nginx -c file.conf , já que quase faz o que eu quero; no entanto, os arquivos conf nos sites ativados parecem rodar dentro de algum outro contexto definido quando o nginx é iniciado porque sempre recebo o seguinte erro ao executar o comando:

$ nginx -c /etc/nginx/sites-available/alpha
2010/09/30 02:32:13 [emerg] 31769#0: unknown directive "server" in sites-available/alpha:1

Como posso executar dinamicamente este novo arquivo 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;
    }
}

Estou usando certificados autoassinados.

    
por Alexander Bird 30.09.2010 / 04:48

4 respostas

5

Execute o seguinte comando:

/etc/init.d/nginx reload

(ou, no mais recente debian / ubuntu):

service nginx reload
    
por 30.09.2010 / 07:44
4
RABBITZ# nginx -h
...snip...
 -s signal     : send signal to a master process: stop, quit, reopen, reload
...snip...

Então você pode usar o comando independente do SO:

nginx -s reload
    
por 30.09.2010 / 16:07
1

serviço nginx recarregar

Lembre-se de que o recarregamento é uma maneira simples de aplicar qualquer conf. É mais apropriado usar o recarregamento, pois ele não causa nenhum tempo de inatividade (o reinício causa alguns milissegundos de tempo de inatividade, pois ele precisa parar e iniciar novamente).

    
por 28.08.2012 / 17:46
0

Encontre o PID do processo mestre:

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

E envie o HUP:

kill -HUP 22042
    
por 30.09.2010 / 06:16

Tags