Из журнала ошибок это выглядит как ваш конфиг nginx. Файл имеет директиву listen с явным IP-адресом:
listen a.b.c.d:443
Это означает, что nginx не запустится, если ваш сетевой интерфейс не подключен и IP-адрес abcd не назначен интерфейсу.
У вас есть два варианта:
- измените директиву listen на: listen 443; (привязать ко всем IP-адресам)
- сделать nginx зависимым от network-online.target
Как описано в http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/, network.target указывает только на то, что стек сетевого управления работает [...] Независимо от того, настроены ли какие-либо сетевые интерфейсы, когда он достигнут не определено
Если вы хотите убедиться, что IP-адрес уже назначен, а интерфейс включен, вам нужно добавить network-online.target в системный файл вашего nginx.
Ваш /etc/systemd/system/multi-user.target.wants/nginx.service файл должен иметь network-online.target в строках After = и Require =.
[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