โหลดใหม่แทนการเริ่มบริการใหม่
การโหลดใหม่สั่งให้ NGINX อ่านการตั้งค่าอีกครั้ง โดยเริ่มโพรเซส worker ใหม่และปล่อยให้โพรเซสเดิมจัดการคำขอที่ยังเปิดอยู่จนเสร็จ ผู้เข้าชมจึงมักไม่สังเกตเห็นความเปลี่ยนแปลง หากใช้การตั้งค่าใหม่ไม่ได้ NGINX จะทำงานต่อด้วยการตั้งค่าเดิม การเริ่มบริการใหม่จะหยุดบริการก่อน จึงตัดการเชื่อมต่อ และอาจเริ่มทำงานอีกครั้งไม่ได้หากการตั้งค่าผิด
สำรองไฟล์ที่จะเปลี่ยน
ก่อนแก้ไข ให้สร้างสำเนาไว้ข้างไฟล์เดิมโดยใส่วันที่ในชื่อ อย่าทิ้งสำเนาไว้ในไดเรกทอรีที่ NGINX โหลดด้วยอักขระแทนค่า เช่น conf.d/*.conf หรือ sites-enabled/* เพราะจะโหลดสำเนาเหล่านั้นด้วย บน Debian และ Ubuntu ให้แก้ไฟล์ใน sites-available โดยรายการใน sites-enabled มักเป็นเพียงลิงก์ไปยังไฟล์นั้น
sudo cp -a /etc/nginx/sites-available/example.conf /root/example.conf.$(date +%Y%m%d-%H%M%S)ทดสอบแล้วจึงโหลดใหม่
nginx -t ตรวจไวยากรณ์และไฟล์ที่การตั้งค่าอ้างถึง เช่น ใบรับรอง ใช้ nginx -T เพื่อดูการตั้งค่าทั้งหมดหลังรวมไฟล์ที่อ้างเข้ามาแล้ว โหลดใหม่เฉพาะเมื่อทดสอบผ่าน การเชื่อมคำสั่งด้วย && จะทำให้เป็นไปตามนี้ การทดสอบบอกไม่ได้ว่าการตั้งค่าทำงานตรงตามที่ตั้งใจหรือไม่ จึงควรเปิดเว็บไซต์ตรวจสอบภายหลัง
sudo nginx -t && sudo systemctl reload nginx
sudo nginx -T | less
curl -I https://example.com/เมื่อเกิดปัญหา
นำสำเนาสำรองกลับมา ทดสอบอีกครั้ง แล้วโหลดใหม่ หากบริการหยุดทำงาน บันทึกข้อผิดพลาดและ journal จะบอกสาเหตุ ให้ค้นหาข้อความเกี่ยวกับพอร์ตที่ถูกใช้งานอยู่ ใบรับรองที่หายไป หรือชื่อเซิร์ฟเวอร์ที่ซ้ำกัน
sudo cp -a /root/example.conf.20261031-120000 /etc/nginx/sites-available/example.conf
sudo nginx -t && sudo systemctl reload nginx
sudo journalctl -u nginx -n 50 --no-pager
sudo tail -n 50 /var/log/nginx/error.logสิ่งที่การโหลดใหม่ไม่ครอบคลุม
การเชื่อมต่อที่คงอยู่นาน เช่น WebSockets จะอยู่กับ worker เดิมจนกว่าจะสิ้นสุด ดังนั้น worker เดิมอาจทำงานต่ออีกระยะและใช้หน่วยความจำเพิ่ม การอัปเกรดแพ็กเกจอาจเริ่มบริการใหม่เองได้ ควรทดลองการเปลี่ยนแปลงครั้งใหญ่บนเซิร์ฟเวอร์ทดสอบก่อน รวมถึงใบรับรองและการเปลี่ยนเส้นทาง
NGINX Manager ใน CH-J Server Manager
NGINX Manager แก้ไขไฟล์การตั้งค่าในไดเรกทอรี NGINX ที่จัดการบนเซิร์ฟเวอร์ Linux ได้สูงสุดไฟล์ละ 512 KiB เมื่อบันทึก แอปจะสร้างสำเนาสำรองโดยต่อท้ายชื่อด้วย .chj-backup- เรียก nginx -t และเก็บการเปลี่ยนแปลงไว้เฉพาะเมื่อทดสอบสำเร็จ การโหลดใหม่ต้องได้รับการยืนยันอย่างชัดเจนจากคุณ และจะทดสอบอีกครั้งก่อนเริ่ม ลิงก์สัญลักษณ์ที่เปิดใช้งานอยู่จะไม่ถูกแทนที่ ให้แก้ไฟล์ที่ตรงกันใน sites-available