Miklix

NGINX에서 별도의 PHP-FPM 풀을 설정하는 방법

게시됨: 2025년 2월 15일 오전 11시 52분 42초 UTC
마지막으로 업데이트되었습니다: 2026년 1월 12일 오전 8시 30분 0초 UTC

이 글에서는 여러 개의 PHP-FPM 풀을 실행하고 FastCGI를 통해 NGINX를 연결하는 데 필요한 구성 단계를 설명합니다. 이를 통해 가상 호스트 간의 프로세스 분리 및 격리가 가능해집니다.


이 페이지는 가능한 한 많은 사람이 이용할 수 있도록 영어에서 기계 번역되었습니다. 안타깝게도 기계 번역은 아직 완성된 기술이 아니므로 오류가 발생할 수 있습니다. 원하시는 경우 여기에서 영어 원문을 보실 수 있습니다:

How to Set Up Separate PHP-FPM Pools in NGINX

이 글의 정보는 Ubuntu Server 14.04 x64에서 실행되는 NGINX 1.4.6 및 PHP-FPM 5.5.9를 기준으로 작성되었습니다. 다른 버전에서는 유효하지 않을 수 있습니다. (업데이트: Ubuntu Server 24.04, PHP-FPM 8.3 및 NGINX 1.24.0에서도 이 글의 모든 지침이 여전히 작동하는 것을 확인했습니다.)

PHP-FPM 자식 프로세스 풀을 여러 개로 나누어 설정하는 것이 모든 프로세스를 하나의 풀에서 실행하는 것보다 여러 가지 이점이 있습니다. 주요 이점으로는 보안, 분리/격리 및 리소스 관리가 있습니다.

동기가 무엇이든, 이 글이 도움이 될 거예요 :-)

파트 1 – 새로운 PHP-FPM 풀 설정하기

먼저 PHP-FPM이 풀 설정을 저장하는 디렉토리를 찾아야 합니다. Ubuntu 14.04에서는 기본적으로 /etc/php5/fpm/pool.d입니다. 아마도 이 디렉토리에는 기본 풀 설정이 담긴 www.conf라는 파일이 이미 있을 것입니다. 만약 이 파일을 이전에 열어본 적이 없다면, 기본 설정이 사양이 낮은 서버를 기준으로 되어 있으므로 설정을 수정하는 것이 좋습니다. 하지만 지금은 처음부터 다시 시작하지 않도록 이 파일을 복사해 두세요.

sudo cp www.conf mypool.conf

물론, "mypool"은 여러분이 원하는 수영장 이름으로 바꾸시면 됩니다.

이제 nano 또는 원하는 텍스트 편집기를 사용하여 새 파일을 열고 목적에 맞게 수정하세요. 자식 프로세스 수와 풀이 실행되는 사용자 및 그룹을 조정해야 할 수도 있지만, 반드시 변경해야 하는 두 가지 설정은 풀 이름과 수신 대기 소켓입니다. 그렇지 않으면 기존 풀과 충돌하여 제대로 작동하지 않을 수 있습니다.

풀 이름은 파일 상단, 대괄호로 묶여 있습니다. 기본값은 [www]입니다. 원하는 이름으로 변경하세요. 설정 파일 이름과 동일하게 지정하는 것을 권장하므로, 이 예시에서는 [mypool]로 변경합니다. 변경하지 않으면 PHP-FPM이 해당 이름의 첫 번째 설정 파일만 로드하는 것으로 보이며, 이로 인해 문제가 발생할 수 있습니다.

다음으로 수신 대기할 소켓 또는 주소를 listen 지시문으로 변경해야 합니다. PHP-FPM은 기본적으로 Unix 소켓을 사용하므로 listen 지시문은 다음과 같을 것입니다.

listen = /var/run/php5-fpm.sock

원하는 유효한 이름으로 변경할 수 있지만, 구성 파일 이름과 유사한 이름을 사용하는 것이 좋습니다. 예를 들어 다음과 같이 설정할 수 있습니다.

listen = /var/run/php5-fpm-mypool.sock

좋습니다, 그럼 파일을 저장하고 텍스트 편집기를 종료하세요.

파트 2 – NGINX 가상 호스트 구성 업데이트

이제 변경하려는 FastCGI 구성이 포함된 NGINX 가상 호스트 파일을 열어야 합니다. 즉, 새 소켓에 연결해야 합니다.

우분투 14.04에서는 기본적으로 이러한 설정이 /etc/nginx/sites-available 디렉터리에 저장되지만, 다른 위치에 정의할 수도 있습니다. 가상 호스트 설정 파일이 어디에 있는지 가장 잘 아는 사람은 바로 당신일 겁니다 ;-)

선호하는 텍스트 편집기로 관련 설정 파일을 열고 PHP-FPM 소켓을 정의하는 fastcgi_pass 지시문(위치 컨텍스트에 있어야 함)을 찾으세요. 이 값을 1단계에서 생성한 새 PHP-FPM 풀 설정과 일치하도록 변경해야 합니다. 예시를 계속 진행하면 다음과 같이 변경합니다.

fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;

그다음 해당 파일도 저장하고 닫으세요. 이제 거의 다 됐습니다.

3부 – PHP-FPM 및 NGINX 재시작

변경한 설정을 적용하려면 PHP-FPM과 NGINX를 모두 재시작해야 합니다. 재시작 대신 재로드만으로도 충분할 수 있지만, 변경한 설정에 따라 결과가 다를 수 있습니다. 제 경우에는 기존 PHP-FPM 자식 프로세스가 즉시 종료되도록 하고 싶었기 때문에 PHP-FPM을 재시작해야 했지만, NGINX의 경우에는 재로드만으로도 충분할 수 있습니다. 직접 시도해 보세요.

sudo service php5-fpm restart
sudo service nginx restart

자, 이제 완료되었습니다. 모든 단계를 올바르게 수행했다면 수정된 가상 호스트는 이제 새로운 PHP-FPM 풀을 사용하고 다른 가상 호스트와 자식 프로세스를 공유하지 않을 것입니다.

블루스카이에서 공유하기페이스북에서 공유하기LinkedIn에서 공유하기Tumblr에 공유하기X에서 공유LinkedIn에서 공유하기Pinterest에 고정

미켈 크리스텐슨

저자 소개

미켈 크리스텐슨
남자 이름은 miklix.com의 창시자이자 소유자입니다. 전문 컴퓨터 프로그래머/소프트웨어 개발자로 20년 이상 경력을 쌓았으며 현재 유럽의 대형 IT 기업에서 정규직으로 근무하고 있습니다. 블로그를 운영하지 않을 때는 여가 시간을 다양한 관심사, 취미, 활동으로 보내며 이 웹사이트에서 다루는 다양한 주제에 어느 정도 반영되어 있습니다.