No olvides que en las ciencias informáticas un error puede tener diferentes soluciones, por lo tanto aquí te enseñamos lo más óptimo y eficiente.
Solución:
Solución 1:
Necesitas, como mínimo, After=network.target
en el [Unit]
sección de su archivo de unidad, para asegurarse de que la red esté activa antes de iniciar nginx. No tengo idea de por qué su archivo de unidad no lo tiene.
Aquí hay un ejemplo completo de mi práctico sistema Fedora, tal como lo envió Fedora:
[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Solución 2:
Desde el registro de errores, parece que su configuración de nginx. El archivo tiene una directiva de escucha con una dirección IP explícita:
listen a.b.c.d:443
Esto significa que nginx no se iniciará a menos que su interfaz de red esté activa y la IP abcd ha sido asignada a la interfaz.
Tienes dos opciones:
- cambie la directiva listen a: listen 443; (vincular a todas las direcciones IP)
- hacer que nginx dependa de network-online.target
Como se describe en http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ the network.target solo indica que la pila de administración de red está activa […] No está definido si alguna interfaz de red ya está configurada cuando se alcanza.
Si desea asegurarse de que la dirección IP ya esté asignada y la interfaz esté activa, debe agregar network-online.target al archivo de unidad systemd de su nginx.
Su archivo /etc/systemd/system/multi-user.target.wants/nginx.service debe tener network-online.target en las líneas After= y Requires=.
[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target network-online.target
Requires=network-online.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Recuerda dar recomendación a esta crónica si te ayudó.