php-fpm 프로세스 관리를 사용하여 로드 밸런싱 달성
인터넷 애플리케이션의 복잡성이 증가하고 사용자 수가 증가함에 따라 로드 밸런싱은 필수 기술이 되었습니다. 로드 밸런싱의 목표는 트래픽을 여러 서버에 분산하여 시스템 안정성과 성능을 향상시키는 것입니다. PHP 애플리케이션에서 php-fpm(PHP FastCGI 프로세스 관리자)은 로드 밸런싱을 달성하고 유연한 구성 옵션을 제공하는 데 사용할 수 있는 일반적인 프로세스 관리 도구입니다.
이 글에서는 php-fpm 프로세스 관리 도구를 사용하여 로드 밸런싱을 달성하는 방법을 소개하고 몇 가지 코드 예제를 제공합니다.
1. php-fpm 설치
먼저 서버에 php-fpm이 설치되어 있는지 확인해야 합니다. 다음 명령을 통해 php-fpm이 설치되었는지 확인할 수 있습니다.
$ php-fpm -v
다음과 유사한 출력이 표시되면 php-fpm이 성공적으로 설치된 것입니다.
PHP 7.4.9 (fpm-fcgi) (built: Jul 16 2020 21:48:32)
php-fpm이 설치되지 않은 경우 설치할 수 있습니다. 다음 명령을 통해:
$ sudo apt-get install php-fpm
2. php-fpm 구성
로드 밸런싱을 구현하기 전에 php-fpm을 구성해야 합니다. 여기에는 주로 다음과 같은 측면이 포함됩니다.
/etc/php/{version}/fpm/pool.d/ 디렉토리에서 가상 호스트 구성을 위해 vhost1.conf라는 새 구성 파일을 생성합니다. 샘플 구성은 다음과 같습니다.
[vhost1] user = www-data group = www-data listen = /var/run/php/vhost1.sock listen.owner = www-data listen.group = www-data
그 중 user 및 group은 가상 호스트가 실행되는 사용자 및 그룹을 지정하고, listening은 php-fpm이 수신할 소켓 경로를 지정합니다.
/etc/php/{version}/fpm/pool.d/ 디렉터리에서 프로세스 관리 구성을 위한 www.conf라는 구성 파일을 찾습니다. 샘플 구성은 다음과 같습니다.
[www] pm = dynamic pm.max_children = 10 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
그중 pm 구성 항목은 프로세스 관리 모드를 동적 모드로 지정하고, pm.max_children은 최대 하위 프로세스 수를 지정하고, pm.start_servers는 pm 시작 하위 프로세스 수를 지정합니다. min_spare_servers 및 pm.max_spare_servers는 유휴 하위 프로세스 수를 지정합니다.
위의 두 가지 주요 구성 외에도 실제 필요에 따라 메모리 제한, 시간 초과 등 몇 가지 다른 옵션을 구성할 수도 있습니다.
3. 로드 밸런싱 구현
php-fpm 구성이 완료되면 이를 사용하여 로드 밸런싱을 수행할 수 있습니다. 구체적인 단계는 다음과 같습니다.
location / { proxy_pass unix:/var/run/php/vhost1.sock; } location /vhost2/ { proxy_pass unix:/var/run/php/vhost2.sock; }
$ sudo systemctl start php7.4-fpm
간단한 PHP 스크립트를 작성하여 로드 밸런싱 효과를 테스트할 수 있습니다. 샘플 코드는 다음과 같습니다.
<?php echo "Hello, World! "; echo "Server IP: " . $_SERVER['SERVER_ADDR'] . " "; ?>
IV.이 기사에서는 php-fpm 프로세스를 사용하는 방법을 소개합니다. 로드 밸런싱을 달성하기 위한 관리를 제공하고 일부 구성 예제와 코드 예제를 제공합니다. php-fpm 프로세스 관리 도구와 웹 서버를 올바르게 구성하면 로드 밸런싱을 달성하고 시스템의 안정성과 성능을 향상시킬 수 있습니다. 실제 애플리케이션에서는 캐싱, 데이터베이스 샤딩 등과 같은 다른 기술과 결합하여 로드 밸런싱 효과를 더욱 최적화할 수도 있습니다.
위 내용은 php-fpm 프로세스 관리를 사용하여 로드 밸런싱 달성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!