No puedo hacer que Nginx funcione en el puerto 80. Funciona bien en cualquier otro puerto

No puedo hacer que Nginx funcione en el puerto 80. Funciona bien en cualquier otro puerto

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

psdice que Nginx se está ejecutando, pero netstat -a | grep nginxo netstat -a | grep 80dice 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 80puerto 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 lsofasí 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 lsofcomando 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):

  1. Eliminar httpd (si lo tienes)
  2. Deshabilitar apacheenlace
  3. Instalar nginx
  4. Cambie el puerto a 80 desde/usr/local/etc/nginx/nginx.conf

información relacionada