Tag: plesk nginx

  • Plesk Nginx fail to start on boot

    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:~# 
    

    plesk