
Acabei de configurar o Nginx do Homebrew no Mac OS X 10.11 (El Capitan).
Se eu definir minha configuração do Ngnix assim:
listen 127.0.0.1:8080;
listen 127.0.0.1:81;
listen 127.0.0.1:75;
Vai funcionar. Mas se eu colocar isso lá:
listen 127.0.0.1:80;
Não vai. Terei a conexão recusada se eu forhttp://127.0.0.1
ps
diz que o Nginx está em execução, mas netstat -a | grep nginx
or netstat -a | grep 80
diz que não está.
Executando isso como root, é claro (não que eu precise disso para rodar em:8080
E o Firewall do Mac OS X não está funcionando.
O log de erros não mostra mais isso:
2015/10/10 17:16:19 [emerg] 23906#0: bind() to 0.0.0.0:80 failed (48: Address already in use)
Alguma ideia? POSSO trabalhar com isso rodando 8080
(curiosamente, quando executo o 8080
, ele abre a 80
porta e redireciona para 80
).
Responder1
OSX reiniciado. Trabalhado. Acho que com o Linux seria diferente.
Responder2
O erro é o seguinte:
2015/10/10 17:16:19 [emerg] 23906#0: bind() to 0.0.0.0:80 failed (48: Address already in use)
Esse “Endereço já em uso” diz tudo: algo mais em seu sistema está usando a porta 80. Você tem o compartilhamento da web ativado ou talvez o Apache instalado e em execução? A maneira de verificar isso é executando lsof
assim em seu sistema:
sudo lsof -i -P | grep -i "80"
Isso mostrará estritamente qual processo pode estar usando a porta 80. Se você estiver curioso para ver quais outras portas estão configuradas para “escutar” em seu sistema Mac OS X, basta executar este comando:
sudo lsof -i -P
E se você quiser apenas verificar se a porta 80 está em uso, você pode usar esta variação do lsof
comando que permite verificar isso sem filtrar a saída com grep
:
sudo lsof -nPL -iTCP:80
Responder3
Em sistemas baseados em Unix, como MacOS, você simplesmente não pode executar serviços em portas abaixo de 1024 sem privilégio de superusuário. Mas quando você reinicia o computador, o serviço nginx é reiniciado automaticamente com superusuário, então funciona.
O seguinte comando deve resolver o problema:
sudo brew services restart nginx
Responder4
Resolvi este problema (tenho MacBook Air com chip M1):
- Remova httpd (se tiver)
- Desativar apachelink
- Instale o nginx
- Mude a porta para 80 de
/usr/local/etc/nginx/nginx.conf