Để tránh lỗi 502-504 khi lưu lượng truy cập cao, cài đặt NGINX chính cần tập trung vào là:
1. Quy trình và kết nối của nhân viên:
- `worker_processes`: Đảm bảo số lượng quy trình công nhân tối ưu phù hợp với số lõi CPU. Đối với lưu lượng truy cập cao, hãy đặt `worker_processes` thành `auto` để cho phép NGINX tự động xác định giá trị tối ưu[1] [2] [5].
- `worker_connections`: Tăng số lượng kết nối tối đa mà mỗi tiến trình công nhân có thể xử lý đồng thời. Để có lưu lượng truy cập cao, hãy đặt `worker_connections` thành giá trị cao hơn như 4096[1][2][5].
2. Thời gian chờ và thời gian nhàn rỗi:
- `keepalive_timeout`: Đặt giá trị này thành giá trị gần với thời gian phản hồi trung bình của bạn để đảm bảo các kết nối duy trì được sử dụng hiệu quả. Đối với lưu lượng truy cập cao, hãy đặt `keepalive_timeout` thành giá trị thấp hơn như 10 giây[1] [2] [5].
- `client_header_timeout`: Đặt giá trị này thành giá trị cân bằng việc xử lý tiêu đề yêu cầu của máy khách với việc sử dụng tài nguyên máy chủ. Để có lưu lượng truy cập cao, hãy đặt `client_header_timeout` thành giá trị thấp hơn như 10 giây[1][2][5].
3. Cài đặt FastCGI:
- `fastcgi_buffer_size`, `fastcgi_buffers`, `fastcgi_busy_buffers_size` và `fastcgi_temp_file_write_size`: Tinh chỉnh các cài đặt này để tối ưu hóa quá trình xử lý PHP và giảm khả năng xảy ra lỗi 502[3] [5].
4. Bộ nhớ đệm và nén:
- `gzip on`: Bật tính năng nén gzip để giảm mức sử dụng băng thông và cải thiện thời gian tải trang[3][5].
- `open_file_cache` và các cài đặt liên quan: Triển khai bộ nhớ đệm cho các tệp được truy cập định kỳ để giảm tải và độ trễ của máy chủ[5].
5. Giám sát và khắc phục sự cố:
- Thường xuyên theo dõi nhật ký truy cập để xác định các điểm nghẽn về hiệu suất và khắc phục sự cố[4][5].
Bằng cách tối ưu hóa các cài đặt này, bạn có thể giảm thiểu khả năng xảy ra lỗi 502-504 khi lưu lượng truy cập cao và đảm bảo máy chủ NGINX của bạn xử lý các yêu cầu một cách hiệu quả.
Trích dẫn:[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.martinjordvald.com/optimizing-nginx-for-high-traffic-loads/
[5] https://webdock.io/en/docs/webdock-control-panel/optimizing-performance/optimizing-nginx-high-traffic-websites