웹사이트 성능 향상의 핵심: PHP-FPM 최적화 실용 가이드
인터넷의 급속한 발전과 함께 웹사이트의 역할이 점점 더 중요해지고 있습니다. 웹사이트 운영자에게 웹사이트 성능을 개선하는 것은 사용자 경험을 향상시킬 뿐만 아니라 검색 엔진 순위를 높이는 데에도 중요합니다. PHP-FPM(FastCGI 프로세스 관리자)은 PHP 실행을 위한 프로세스 관리자로서 웹 사이트 성능을 향상시키는 데 중요한 역할을 합니다. 이 기사에서는 특정 코드 예제를 포함하여 PHP-FPM 최적화에 대한 실용적인 가이드를 제공합니다.
1. PHP-FPM 설치 및 구성
먼저 서버에 PHP가 설치되어 있는지 확인해야 합니다. 다음 명령어로 확인할 수 있습니다.
php -v
PHP가 설치되지 않은 경우 다음 명령어를 사용하여 설치하세요(CentOS를 예로 들어).
yum install php
설치가 완료된 후 php를 수정해야 합니다. ini 파일을 사용하여 PHP-FPM 지원을 활성화합니다. 다음 두 줄의 코드를 찾아 수정합니다.
cgi.fix_pathinfo=0 ; FastCGI dynamic process spawning ; Set to 0 if you're not having permission errors when running PHP as a CGI. ; http://php.net/cgi.fix-pathinfo
첫 번째 코드 줄을 다음과 같이 수정합니다.
cgi.fix_pathinfo=1
두 번째 코드 줄을 다음으로 수정합니다.
;cgi.fix_pathinfo=0
수정 사항을 저장한 후 PHP-FPM 서비스를 다시 시작하여 수정이 효과적입니다.
service php-fpm restart
2. PHP-FPM의 구성 매개변수를 조정하세요
PHP-FPM을 최적화하기 전에 PHP-FPM의 몇 가지 중요한 매개변수를 이해해야 합니다.
서버 구성과 웹사이트 트래픽에 따라 이러한 매개변수를 적절하게 조정하여 PHP-FPM의 성능을 향상시킬 수 있습니다. 예를 들어 서버 구성이 낮은 경우 pm.max_children을 20과 같은 더 작은 값으로 설정할 수 있습니다. 웹 사이트 트래픽이 높지 않은 경우 pm.min_spare_servers 및 pm.max_spare_servers를 5와 같이 더 작은 값으로 설정할 수 있습니다.
php-fpm.conf 파일을 편집하여 이러한 매개변수를 수정할 수 있습니다.
vi /etc/php-fpm.conf
수정할 다음 코드 줄을 찾으세요.
pm.max_children = 20 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 10 pm.max_requests = 500
수정 사항을 저장한 후 PHP-FPM 서비스를 다시 시작하여 수정 사항을 적용하세요.
service php-fpm restart
3. PHP의 OPcache 확장 활성화
OPcache는 PHP 버전 5.5 이후에 도입된 가속기입니다. 컴파일된 PHP 스크립트를 메모리에 캐시하여 반복 컴파일 시간을 줄일 수 있습니다. 다음 단계에 따라 OPcache 확장을 활성화할 수 있습니다.
vi /etc/php.ini
;zend_extension = <path_to_opcache.so>
service php-fpm restart
4. PHP-FPM의 느린 로그 기능을 켜세요
PHP-FPM의 느린 로그 기능은 실행 시간이 지정된 임계값을 초과하는 요청을 후속 분석 및 최적화를 위해 로그 파일에 기록할 수 있습니다. 다음 단계를 통해 느린 로그 기능을 켤 수 있습니다.
vi /etc/php-fpm.conf
;slowlog = /var/log/php-fpm/www-slow.log ;request_slowlog_timeout = 0
service php-fpm restart
5. Nginx와 같은 역방향 프록시 서버를 사용하세요.
Nginx와 같은 역방향 프록시 서버를 사용하면 처리를 위해 정적 리소스 요청을 Nginx로 전달할 수 있으므로 PHP-FPM의 부하가 줄어들고 웹사이트 성능이 향상됩니다.
Nginx 구성 파일에서 다음 코드를 통해 정적 리소스에 대한 요청을 Nginx로 전달할 수 있습니다.
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { proxy_pass http://yourdomain.com; proxy_set_header Host $host; }
위 코드는 jpg, jpeg, png, gif, ico, css, js 및 기타 접미사에 대한 요청을 http로 전달합니다. //yourdomain.com에서 처리되었습니다.
6. 캐싱 메커니즘 사용
웹사이트의 비즈니스 로직에서 캐싱 메커니즘은 데이터베이스 액세스와 동적 페이지 생성을 줄여 웹사이트 성능을 향상시키는 데 사용될 수 있습니다. 이는 Redis 및 Memcached와 같은 캐싱 기술을 사용하여 달성할 수 있습니다.
Redis 캐시는 다음 코드 예시를 통해 사용할 수 있습니다.
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); $key = 'user_info_' . $user_id; if ($redis->exists($key)) { $user_info = $redis->get($key); } else { $user_info = getUserInfoFromDatabase($user_id); $redis->setex($key, 3600, $user_info); }
위 코드는 먼저 캐시에 사용자 정보가 있는지 확인하고, 없으면 캐시에서 직접 가져옵니다. 데이터베이스에서 사용자 정보를 가져와 캐시에 저장하고 만료 시간을 3600초로 설정합니다.
요약:
PHP-FPM을 최적화함으로써 웹사이트의 성능을 향상시키고 사용자 경험을 향상시킬 수 있습니다. 이 문서에서는 PHP-FPM 최적화에 대한 실용적인 가이드를 제공하고 참조할 수 있는 특정 코드 예제를 제공합니다. 실제 애플리케이션에서는 최상의 성능을 달성하기 위해 특정 요구 사항에 따라 조정 및 최적화할 수도 있습니다.
위 내용은 웹사이트 성능 향상의 핵심: PHP-FPM 최적화 실무 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!