เพื่อหลีกเลี่ยงข้อผิดพลาด 502-504 ในช่วงที่มีการรับส่งข้อมูลสูง การตั้งค่า NGINX หลักที่ต้องให้ความสำคัญคือ:
1. กระบวนการและการเชื่อมต่อของผู้ปฏิบัติงาน:
- `worker_processes`: ตรวจสอบให้แน่ใจว่าจำนวนกระบวนการของผู้ปฏิบัติงานที่เหมาะสมที่สุดตรงกับจำนวนคอร์ CPU สำหรับการรับส่งข้อมูลจำนวนมาก ให้ตั้งค่า `worker_processes` เป็น `auto` เพื่อให้ NGINX กำหนดค่าที่เหมาะสมที่สุดโดยอัตโนมัติ[1][2][5]
- `worker_connections`: เพิ่มจำนวนการเชื่อมต่อสูงสุดที่แต่ละกระบวนการของพนักงานสามารถจัดการได้พร้อมกัน สำหรับการรับส่งข้อมูลสูง ให้ตั้งค่า `worker_connections` เป็นค่าที่สูงกว่า เช่น 4096[1][2][5]
2. การหมดเวลาและเวลาว่าง:
- `keepalive_timeout`: ตั้งค่านี้เป็นค่าที่ใกล้เคียงกับเวลาตอบสนองโดยเฉลี่ยของคุณเพื่อให้แน่ใจว่าการเชื่อมต่อ Keep-alive ถูกใช้อย่างมีประสิทธิภาพ สำหรับการเข้าชมที่สูง ให้ตั้งค่า `keepalive_timeout` เป็นค่าที่ต่ำกว่า เช่น 10 วินาที[1][2][5]
- `client_header_timeout`: ตั้งค่านี้เป็นค่าที่ทำให้การประมวลผลส่วนหัวคำขอของไคลเอ็นต์สมดุลกับการใช้ทรัพยากรเซิร์ฟเวอร์ เพื่อให้มีการเข้าชมสูง ให้ตั้งค่า `client_header_timeout` เป็นค่าที่ต่ำกว่า เช่น 10 วินาที[1][2][5]
3. การตั้งค่า FastCGI:
- `fastcgi_buffer_size`, `fastcgi_buffers`, `fastcgi_busy_buffers_size` และ `fastcgi_temp_file_write_size`: ปรับแต่งการตั้งค่าเหล่านี้อย่างละเอียดเพื่อเพิ่มประสิทธิภาพการประมวลผล PHP และลดโอกาสที่จะเกิดข้อผิดพลาด 502 ข้อ[3][5]
4. การแคชและการบีบอัด:
- `gzip on`: เปิดใช้งานการบีบอัด gzip เพื่อลดการใช้แบนด์วิดท์และปรับปรุงเวลาในการโหลดหน้าเว็บ [3] [5]
- `open_file_cache` และการตั้งค่าที่เกี่ยวข้อง: ใช้แคชสำหรับไฟล์ที่เข้าถึงเป็นระยะๆ เพื่อลดภาระของเซิร์ฟเวอร์และเวลาแฝง[5]
5. การตรวจสอบและการแก้ไขปัญหา:
- ตรวจสอบบันทึกการเข้าถึงเป็นประจำเพื่อระบุปัญหาคอขวดด้านประสิทธิภาพและแก้ไขปัญหา[4] [5]
เมื่อปรับการตั้งค่าเหล่านี้ให้เหมาะสม คุณจะลดโอกาสที่จะเกิดข้อผิดพลาด 502-504 ให้เหลือน้อยที่สุดในระหว่างการรับส่งข้อมูลจำนวนมาก และมั่นใจได้ว่าเซิร์ฟเวอร์ NGINX ของคุณจะจัดการคำขอได้อย่างมีประสิทธิภาพ
การอ้างอิง:[1] https://www.freshblurbs.com/blog/2015/11/28/high-load-nginx-config.html
[2] https://www.webhi.com/how-to/optimize-nginx-configuration-for-high-traffic-websites-busy-server/
[3] https://phpenterprisesystems.com/web-servers/215-example-nginx-configuration-for-high-traffic-high-load-php-web-sites
[4] https://blog.martinborgvald.com/optimizing-nginx-for-high-traffic-loads/
[5] https://webdock.io/en/docs/webdock-control-panel/optimizing-Performance/optimizing-nginx-high-traffic-websites
-