[php] Nginx PHP 서버 리소스 제한 설정

웹 서버와 PHP 어플리케이션을 운영할 때, 서버 리소스를 적절히 제한하는 것은 중요합니다. Nginx와 PHP를 함께 사용하는 경우, Nginx에서 PHP 서버 리소스를 제한하는 방법을 알아보겠습니다.

1. PHP-FPM 설정 변경

PHP-FPM (FastCGI Process Manager)을 사용하여 PHP 프로세스를 관리하는 경우, 각각의 PHP 프로세스에 대한 제한을 설정할 수 있습니다. 아래는 www.conf 파일에서 세부적인 설정을 변경하는 예시입니다.

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500

위 설정에서, pm.max_children은 최대 PHP 프로세스 개수를 나타내며, pm.max_requests는 각 PHP 프로세스가 처리할 수 있는 요청 수를 의미합니다.

2. Nginx Worker Connections 설정

Nginx의 Worker Connections 설정을 통해 PHP 프로세스와의 연결 수를 제한할 수 있습니다.

events {
    worker_connections 1024;
}

위의 설정은 단일 worker 프로세스가 처리할 수 있는 최대 연결 수를 나타냅니다.

3. PHP 자원 제한

PHP 스크립트의 CPU 및 메모리 사용량을 제한하는 방법도 존재합니다. php.ini 파일을 수정하여 아래와 같은 설정을 추가할 수 있습니다.

; Maximum execution time of each script, in seconds
max_execution_time = 30

; Maximum amount of memory a script may consume
memory_limit = 128M

위의 설정에서, max_execution_time은 각 스크립트의 최대 실행 시간을 나타내며, memory_limit는 각 스크립트가 사용할 수 있는 최대 메모리 양을 의미합니다.

요약

Nginx와 PHP를 함께 사용할 때, 각 서버 및 어플리케이션의 리소스를 적절히 제한하는 것은 성능 및 안정성을 유지하는 데 중요합니다. PHP-FPM 및 Nginx의 설정을 조정하여 적절한 리소스 제한을 설정하는 것은 웹 서버 운영의 핵심적인 부분입니다.

참고 자료

제안 사항이 있으시면 언제든지 말씀해주세요.