Nginx에서 PHP-FPM 상태를 활성화하고 모니터링하는 방법
PHP-FPM(FastCGI 프로세스 관리자)은 모든 규모의 웹사이트에 유용한 여러 추가 기능을 제공하는 대체 PHP FastCGI 구현입니다. 특히 트래픽이 많은 사이트.
LEMP(Linux Nginx MySQL/MariaDB PHP) 스택에서 일반적으로 사용됩니다. Nginx는 네트워크에서 동적 HTTP 콘텐츠를 제공하기 위해 PHP FastCGI를 사용합니다. 이는 인터넷의 웹 서버에 있는 수백 개의 웹 사이트에 대한 수백만 개의 PHP 요청을 처리하는 데 사용되고 있습니다.
참고 사항: NGINX 상태 페이지를 활성화하는 방법
php-fpm의 유용한 기능 중 하나는 상태를 모니터링하는 데 도움이 되는 내장 상태 페이지입니다. 이 문서에서는 Linux에서 PHP-FPM 상태 페이지를 활성화하는 방법을 보여줍니다.
Linux에서 PHP-FPM 상태 페이지를 활성화하는 방법
먼저 php-fpm 구성 파일을 열고 표시된 대로 상태 페이지를 활성화합니다.
sudo vim /etc/php-fpm.d/www.conf
OR
sudo vim /etc/php/7.2/fpm/pool.d/www.conf #for PHP versions 5.6, 7.0, 7.1
이 파일 내에서 스크린샷에 표시된 대로 pm.status_path=/status
변수를 찾아서 주석 처리를 제거하세요.
변경 사항을 저장하고 파일을 종료합니다.
그런 다음 아래 명령을 실행하여 PHP-FPM 구성 파일에 오류가 있는지 확인하세요.
sudo php-fpm -t
OR
sudo php7.2-fpm -t
그런 다음 PHP-FPM 서비스를 다시 시작하여 최근 변경 사항을 적용합니다.
sudo systemctl restart php-fpm
OR
sudo systemctl restart php7.2-fpm
그런 다음 기본 서버 블록(가상 호스트) 구성 파일을 편집하고 아래에 위치 블록을 추가합니다. 예를 들어 테스트 시스템에서 test.lab 사이트에 대한 기본 서버 블록의 구성 파일은 /etc/nginx/conf.d/default.conf입니다.
sudo vim /etc/nginx/conf.d/default.conf
추가할 위치 블록은 다음과 같습니다. 이 구성에서는 보안상의 이유로 allow 127.0.0.1 지시문을 사용하여 로컬 호스트 내의 PHP-FPM 프로세스 상태에 대한 액세스만 허용했습니다.
location ~ ^/(status|ping)$ {
allow 127.0.0.1;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php7.2-fpm.sock;
}
파일을 저장하고 닫습니다.
그런 다음 Nginx 서버를 다시 시작하여 위 변경 사항을 적용합니다.
sudo systemctl restart nginx
이제 브라우저를 열고 URL http://test.lab/status
를 입력하여 PHP-FPM 프로세스 상태를 확인하세요.
또는 다음과 같이 컬 프로그램을 사용하십시오. 여기서 -L
플래그는 페이지 위치를 지정합니다.
curl -L http://test.lab/status
기본적으로 상태 페이지에는 요약 또는 간략한 상태만 인쇄됩니다. 각 풀 프로세스의 상태를 보려면 쿼리 문자열에 “full”을 전달하세요. 예를 들면 다음과 같습니다.
http://www.foo.bar/status?full
표시된 대로 출력 형식(JSON, HTML 또는 XML)을 정의할 수 있습니다.
http://www.foo.bar/status?json&full
http://www.foo.bar/status?html&full
http://www.foo.bar/status?xml&full
다음은 각 프로세스에 대해 php-fpm 전체 상태에서 반환되는 값입니다.
- pid – 프로세스의 PID입니다.
- 상태 프로세스 상태(유휴, 실행 중 등)입니다.
- 시작 시간 – 프로세스가 시작된 날짜 및 시간입니다.
- 시작 이후 – 프로세스가 시작된 이후 경과한 시간(초)입니다.
- 요청 – 프로세스가 처리한 요청 수입니다.
- 요청 기간 – 요청 기간(μs)입니다.
- 요청 방법 – 요청 방법(GET, POST 등).
- 요청 URI – 쿼리 문자열이 포함된 요청 URI입니다.
- 콘텐츠 길이 – 요청의 콘텐츠 길이(POST에만 해당)
- 사용자 – 사용자(PHP_AUTH_USER)(또는 설정되지 않은 경우 '-').
- 스크립트 – 호출되는 기본 스크립트입니다(또는 설정되지 않은 경우 '-').
- 마지막 요청 CPU – 소비된 마지막 요청의 %cpu입니다(프로세스가 유휴 상태가 아닌 경우 항상 0입니다).
- 마지막 요청 메모리 – 마지막 요청이 소비한 최대 메모리 양(프로세스가 유휴 상태가 아닌 경우 항상 0입니다).
지금은 그게 다야! 이 글에서는 Nginx 웹 서버에서 php-fpm 상태 페이지를 활성화하는 방법을 설명했습니다. 아래 피드백 양식을 사용하여 귀하의 생각을 공유해 주세요.