Ao procurar uma solução, vários locais, como este diz que a solução é remover / comentar a linha da diretiva listen
no host padrão.
#listen 80 default_server;
Isso não mudou nada para mim, e o principal error_log continuou a ser preenchido.
Finalmente, alguém nos fóruns do nginx resolve um problema semelhante recomendado a saída de
ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)'
Que para mim foi
PID PPID %CPU VSZ WCHAN COMMAND
4963 1 0.0 2504128 - /opt/local/bin/daemondo --label=nginx --start-cmd /opt/local/sbin/nginx ; --pid=fileauto --pidfile /opt/local/var/run/nginx/nginx.pid
4967 1 0.0 2475388 - nginx: master process /opt/local/sbin/nginx
4969 4967 0.0 2476412 - nginx: worker process
5024 1538 0.0 2432784 - egrep (nginx|PID)
1969 1874 0.0 2432772 - tail -F /opt/local/etc/nginx/logs/error.log
Eu notei na primeira linha que o local do pidfile estava sendo definido no comando de inicialização do MacPorts --pidfile /opt/local/var/run/nginx/nginx.pid
e que ele era diferente do local que eu havia especificado no meu nginx.conf
. Alterei a entrada pid
de volta para corresponder ao que o comando de início estava especificando:
pid /opt/local/var/run/nginx/nginx.pid;
Depois de reiniciar o nginx e seguir o error_log ( tail -F /opt/local/etc/nginx/logs/error.log
), percebi que o problema foi corrigido.
Resumindo: se você estiver usando a versão MacPorts do nginx, provavelmente não desejará alterar a localização do pidfile.
Como um aparte, se você olhar para outras páginas tentando resolver esse problema, especificamente aquelas em que o problema foi corrigido removendo a diretiva listen
ou onde algo como o Apache também estava usando a porta 80, você notará que logs dizem
[emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
e o meu teve
[emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)
Eu suspeito que a diferença entre o erro 98 e o erro 48 é a diferença, mas não consegui encontrar nenhuma descrição dos vários erros.