จากบันทึกข้อผิดพลาดดูเหมือนว่าการกำหนดค่า nginx ของคุณ ไฟล์มีคำสั่งการฟังพร้อมที่อยู่ IP ที่ชัดเจน:
listen a.b.c.d:443
ซึ่งหมายความว่า nginx จะไม่เริ่มทำงานจนกว่าอินเทอร์เฟซเครือข่ายของคุณจะขึ้นและ IP abcd ได้รับการกำหนดให้กับอินเทอร์เฟซ
คุณมีสองทางเลือก:
- เปลี่ยนคำสั่งฟังเป็น: ฟัง 443; (ผูกกับที่อยู่ IP ทั้งหมด)
- ทำให้ nginx ขึ้นอยู่กับ network-online.target
ตามที่อธิบายไว้ในhttp://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ network.target ระบุว่าการจัดการเครือข่ายสแต็คขึ้น [... ] ว่ามีการกำหนดค่าอินเทอร์เฟซเครือข่ายใด ๆ หรือไม่เมื่อถึง ไม่ได้กำหนด
หากคุณต้องการตรวจสอบให้แน่ใจว่าที่อยู่ IP ได้รับการกำหนดแล้วและอินเทอร์เฟซขึ้นคุณต้องเพิ่ม network-online.target ไปยังไฟล์ systemd unit ของ nginx ของคุณ
ไฟล์ /etc/systemd/system/multi-user.target.wants/nginx.service ของคุณควรมี network-online.target ในบรรทัด After = และ Need =
[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