On a Debian Server with Plesk Control Panel, Nginx did not start on boot.
On checking status, i get
root@server:~# systemctl status nginx * nginx.service - Startup script for nginx service Loaded: loaded (/lib/systemd/system/nginx.service; enabled) Active: failed (Result: exit-code) since Mon 2018-01-22 18:30:19 CET; 2min 21s ago Process: 700 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE) Process: 646 ExecStartPre=/usr/bin/test $NGINX_ENABLED = yes (code=exited, status=0/SUCCESS) Jan 22 18:30:19 server.hostonnet.com nginx[700]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Jan 22 18:30:19 server.hostonnet.com nginx[700]: nginx: [emerg] bind() to 82.211.1.93:80 failed (99: Cannot assign requested address) Jan 22 18:30:19 server.hostonnet.com nginx[700]: nginx: configuration file /etc/nginx/nginx.conf test failed Jan 22 18:30:19 server.hostonnet.com systemd[1]: nginx.service: control process exited, code=exited status=1 Jan 22 18:30:19 server.hostonnet.com systemd[1]: Failed to start Startup script for nginx service. Jan 22 18:30:19 server.hostonnet.com systemd[1]: Unit nginx.service entered failed state. root@server:~#
/var/log/nginx/error_log had following error
2018/01/22 18:30:19 [emerg] 700#0: bind() to 82.211.1.93:80 failed (99: Cannot assign requested address)
Solution
Edit nginx.service file
vi /etc/systemd/system/multi-user.target.wants/nginx.service
Find line
ExecStartPre
Add above (on a new line)
ExecStartPre=/bin/sleep 60
Find
After=network.target remote-fs.target nss-lookup.target
Replace with
After=network-online.target remote-fs.target nss-lookup.target
Reload service file
systemctl daemon-reload
Here is my modified nginx.service file
root@root1229:~# cat /lib/systemd/system/nginx.service [Unit] Description=Startup script for nginx service After=network-online.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid EnvironmentFile=-/etc/default/nginx .include /etc/default/nginx.systemd # tuning of limits settings: # 1. fill required limits as described in systemd.exec(5) # nginx.systemd content example for number of open files: # [Service] # LimitNOFILE=8192 # 2. restart service ExecStartPre=/bin/sleep 60 ExecStartPre=/usr/bin/test $NGINX_ENABLED = "yes" ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/usr/bin/test $NGINX_ENABLED = "yes" ExecReload=/usr/sbin/nginx -t ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID [Install] WantedBy=multi-user.target root@root1229:~#