트래픽이 많은 동안 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`: 연결 유지 연결이 효율적으로 활용되도록 하려면 평균 응답 시간에 가까운 값으로 설정하세요. 트래픽이 많은 경우 '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.martinfjordvald.com/optimizing-nginx-for-high-traffic-loads/
[5] https://webdock.io/en/docs/webdock-control-panel/optimizing-performance/optimizing-nginx-high-traffic-websites