Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Hoy han lanzado una nueva versión de ngnix desde las actualizaciones que gestiona Webmin, la 1.0.12 (la estable oficial es la 1.0.13.
Pues bien, al reiniciar el servidor nginx: service nginx restart ha saltado el siguiente error:
[root@ks66666 /]# service nginx restart
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
[FAILED]
Al parecer al instalar esta actualización se reescribe uno de los archivos de configuración de nginx, en mi caso el /etc/nginx/conf.d/default.conf . El principal archivo de configuración /etc/nginx/nginx.conf aunque reescribe la fecha de la actualización no lo modifica.
Para corregir este error en el primer archivo /etc/nginx/conf.d/default.conf debe ponerse el puerto correcto sobre el que está escuchando nginx (y que tenemos también en el nginx.conf). En mi caso nginx escucha en el puerto 9000, aunque lo más normal si lo utilizamos como proxy por delante de Apache es que lo haga en el 8080.
Debemos mirar que puerto tenemos anotado en la línea listen del archivo nginx.conf, algo parecido a esto:
#
# The default server
#
server {
#limit_conn myzone 10;
listen 46.105.123.120:9000;
server_name localhost;
Y colocar el mismo número de puerto en el archivo /etc/nginx/conf.d/default.conf :
#
# The default server
#
server {
listen 9000;
server_name localhost;
Espero os sirva !