[php] Nginx PHP 캐싱 설정

Nginx는 동적 PHP 웹 페이지를 캐싱하여 서버 응답 시간을 단축할 수 있는 강력한 웹 서버이다. PHP 캐싱을 활용하면 동일한 요청에 대한 처리 속도를 높이고 서버 부하를 감소시킬 수 있다. 이 글에서는 Nginx에서 PHP 캐싱을 설정하는 방법에 대해 알아보겠다.

Nginx FastCGI 캐싱 모듈 설치

Nginx FastCGI 캐싱 모듈을 사용하려면 먼저 해당 모듈을 설치해야 한다. 다음은 Ubuntu에서의 설치 방법이다.

sudo apt-get update
sudo apt-get install nginx
sudo apt-get install nginx-extras

Nginx 구성 파일 수정

다음으로, Nginx 구성 파일을 수정하여 PHP 캐싱을 활성화해야 한다. 이를 위해 nginx.conf 또는 해당 사이트의 구성 파일을 열고 아래와 비슷한 설정을 추가한다.

fastcgi_cache_path /path/to/cache/keys_zone=cache_zone:10m;

Nginx 사이트 구성 업데이트

Nginx 사이트 구성 파일을 열어 PHP 캐싱이 필요한 위치를 지정해야 한다. 다음은 예시이다.

server {
    ...
    location ~ \.php$ {
        fastcgi_cache cache_zone;
        fastcgi_cache_key $request_uri;
        fastcgi_cache_valid 200 301 302 5m;
        fastcgi_cache_valid 404 1m;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php/php<YOUR_PHP_VERSION>-fpm.sock;
    }
    ...
}

위 설정에서 fastcgi_cache는 사용할 캐시 영역을 지정하고, fastcgi_cache_key는 캐시 키를 지정한다. fastcgi_cache_valid은 캐시 유효 시간을 설정하는데, 200, 301, 302는 성공 응답 코드이며 여기서는 5분으로 설정되었다. 404는 오류 응답 코드이며 1분으로 설정되었다.

Nginx 서비스 다시 시작

모든 설정을 마쳤으면 Nginx 서비스를 다시 시작하여 변경 사항을 적용한다.

sudo systemctl restart nginx

이제 Nginx는 PHP 캐싱을 활용하여 동적 PHP 페이지의 응답을 보다 빠르게 제공할 수 있게 되었다.


이제 Nginx에서 PHP 캐싱을 설정하는 방법에 대해 알아보았다. 이를 통해 웹 서버의 성능을 향상시키고 서버 부하를 줄일 수 있다. Nginx FastCGI 캐싱 모듈을 활용하여 웹 애플리케이션의 성능을 최적화할 수 있을 것이다.

레퍼런스: