
Acabo de configurar Nginx de Homebrew en Mac OS X 10.11 (El Capitan).
Si configuro mi configuración de Ngnix de esta manera:
listen 127.0.0.1:8080;
listen 127.0.0.1:81;
listen 127.0.0.1:75;
Funcionará. Pero si pongo esto ahí:
listen 127.0.0.1:80;
No lo hará. Me rechazarán la conexión si voy.http://127.0.0.1
ps
dice que Nginx se está ejecutando, pero netstat -a | grep nginx
o netstat -a | grep 80
dice que no.
Ejecutar esto como root, por supuesto (no es que lo necesite para ejecutarlo en:8080
Y Mac OS X Firewall no se está ejecutando.
El registro de errores ya no muestra esto:
2015/10/10 17:16:19 [emerg] 23906#0: bind() to 0.0.0.0:80 failed (48: Address already in use)
¿Algunas ideas? PUEDO trabajar con esto ejecutándose 8080
(curiosamente, cuando lo ejecuto 8080
, abre el 80
puerto y lo redirige a 80
).
Respuesta1
OSX reiniciado. Trabajó. Creo que con Linux sería diferente.
Respuesta2
El error es el siguiente:
2015/10/10 17:16:19 [emerg] 23906#0: bind() to 0.0.0.0:80 failed (48: Address already in use)
Esa "Dirección ya en uso" lo dice todo: algo más en su sistema está usando el puerto 80. ¿Tiene habilitado el uso compartido de web o quizás Apache instalado y ejecutándose? La forma de comprobar esto es ejecutarlo lsof
así en su sistema:
sudo lsof -i -P | grep -i "80"
Eso le mostrará estrictamente qué proceso podría estar usando el puerto 80. Si tiene curiosidad por ver qué otros puertos están configurados para "escuchar" en su sistema Mac OS X, simplemente ejecute este comando:
sudo lsof -i -P
Y si solo desea verificar si el puerto 80 está en uso, puede usar esta variación del lsof
comando que permite verificar esto sin filtrar la salida con grep
:
sudo lsof -nPL -iTCP:80
Respuesta3
En sistemas basados en Unix, como MacOS, simplemente no puede ejecutar servicios en puertos inferiores a 1024 sin privilegios de superusuario. Pero cuando reinicia su computadora, el servicio nginx se reinicia automáticamente con el superusuario, por lo que funciona.
El siguiente comando debería resolver el problema:
sudo brew services restart nginx
Respuesta4
Resolví este problema (tengo MacBook Air con chip M1):
- Eliminar httpd (si lo tienes)
- Deshabilitar apacheenlace
- Instalar nginx
- Cambie el puerto a 80 desde
/usr/local/etc/nginx/nginx.conf