[php] Nginx PHP 캐시 제어 설정

웹 애플리케이션을 운영할 때 성능을 향상시키기 위해 캐싱은 중요한 요소입니다. Nginx에서 PHP 캐시를 제어하는 방법에 대해 알아봅시다.

FastCGI 캐시 설정

Nginx는 FastCGI 캐시 모듈을 통해 PHP 캐싱을 위한 기능을 제공합니다. 이 모듈을 사용하면 웹 서버가 PHP 스크립트의 실행 결과를 캐시하여 동일한 요청에 대해 다시 실행하지 않고 캐시된 결과를 반환할 수 있습니다.

fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=phpcache:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

위의 예시는 FastCGI 캐시를 설정하고 캐시 영역을 /var/cache/nginx 디렉토리에 만들며, 캐시 키 값은 $scheme$request_method$host$request_uri로 설정합니다.

캐시 적용

캐시를 적용하려면 location 블록 내에서 캐시 동작을 지정해야 합니다.

location ~ \.php$ {
    fastcgi_cache phpcache;
    fastcgi_cache_valid 200 302 10m;
    fastcgi_cache_valid 301 1h;
    fastcgi_cache_use_stale error timeout invalid_header updating http_500;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

위의 예시에서는 .php로 끝나는 URL에 대해 캐시를 적용하고, 200 OK 및 302 Found 상태 코드에 대한 응답을 10분간 캐시 유효로 지정하고, 301 Moved Permanently 상태 코드에 대한 응답을 1시간 동안 캐시 유효로 지정합니다.

이제 Nginx에서 PHP 캐시를 제어하는 방법에 대해 알아보았습니다. 웹 애플리케이션의 성능 향상을 위해 이러한 캐시 설정을 적용해보세요.

더 자세한 내용은 Nginx FastCGI 캐시 모듈 문서를 참고하세요.