웹사이트 검색

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 상태 페이지를 활성화하는 방법을 설명했습니다. 아래 피드백 양식을 사용하여 귀하의 생각을 공유해 주세요.