nginx no se inicia automáticamente tras reiniciar el servidor y se obtiene el error "Cannot assign requested address"

Created:

2016-11-16 12:44:36 UTC

Modified:

2017-08-19 05:43:31 UTC

18

Was this article helpful?


Have more questions?

Enviar una solicitud

nginx no se inicia automáticamente tras reiniciar el servidor y se obtiene el error "Cannot assign requested address"

Applicable to:

  • Plesk 12.5 for Linux
  • Plesk Onyx for Linux

Síntomas

Una vez reiniciado el servidor, no es posible iniciar nginx :

# systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
● nginx.service loaded failed failed Startup script for nginx service

El sistema operativo se ha instalado con systemd (Debian 8, CentOS 7, etc.).

En /var/log/nginx/error.log se observan los siguientes mensajes:

 2015/12/28 11:58:57 [emerg] 1140#0: bind() to [203.0.113.2]:80 failed (99: Cannot assign requested address)

En journalctl pueden verse las siguientes entradas:

# journalctl -u network.service -u network.target -u nginx.service -b
Feb 04 20:42:57 server.plesk.test nginx[352]: nginx: [emerg] bind() to 203.0.113.2:80 failed (99: Cannot assign requested address)
...
Feb 04 20:42:57 server.plesk.test systemd[1]: Failed to start Startup script for nginx service.
Feb 04 20:42:57 server.plesk.test systemd[1]: Unit nginx.service entered failed state.
...
Feb 04 20:42:57 server.plesk.test network[268]: Bringing up interface eth0:
Feb 04 20:42:57 server.plesk.test dhclient[665]: DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x4b684081)
Feb 04 20:42:57 server.plesk.test dhclient[665]: DHCPACK from 203.0.113.2 (xid=0x4b684081)
...
Feb 04 20:42:59 server.plesk.test network[268]: [ OK ]

De todos modos, nginx puede iniciarse manualmente sin experimentar problemas:

# systemctl start nginx.service

Causa

Demora en la asignación de la dirección IP a un interfaz de red. Por ejemplo, puede tratarse de una demora en la respuesta del servidor DHCP.

Resolución

  1. Compruebe que en el archivo de configuración del interfaz de red eth0 se ha definido la opción ONBOOT=yes .

    [root@server]# grep "ONBOOT" /etc/sysconfig/network-scripts/ifcfg-eth0
    ONBOOT="yes"
  2. Cree un backup del script de inicio /etc/systemd/system/multi-user.target.wants/nginx.service de nginx .

  3. Modifique el script de inicio /etc/systemd/system/multi-user.target.wants/nginx.service de nginx y reemplace
    After=network.target remote-fs.target nss-lookup.target

Por:

    After=network-online.target remote-fs.target nss-lookup.target

De esta forma, una vez se configure una red y se asignen todas las direcciones IP, se ejecutará el script de inicio de nginx .

  1. Reinicie el servidor.
¿Tiene más preguntas? Enviar una solicitud
Inicie sesión para dejar un comentario.