Ubuntu에서 Nginx FastCGI 캐시를 설정하는 방법

Nginx FastCGI 캐시는 Ubuntu 서버의 로드를 줄여 웹 사이트 성능을 향상시킵니다. 특히 동적 콘텐츠에 효과적이므로 Nginx가 PHP 프로세서를 사용하지 않고 캐시된 콘텐츠를 직접 제공할 수 있습니다. 이렇게 하면 응답 시간이 빨라지고 리소스 사용량이 줄어듭니다. 웹 인프라를 위한 Nginx FastCGI 캐시의 주요 기능과 이점은 다음과 같습니다.

  • 효율적인 콘텐츠 전달: Nginx FastCGI 캐시는 동적 콘텐츠 출력을 저장하여 더 빠른 액세스 및 배포를 가능하게 합니다.
  • 서버 부하 감소: 캐시된 콘텐츠를 제공하면 PHP 호출 수가 최소화되어 서버 로드가 줄어듭니다.
  • 확장성: Nginx FastCGI 캐시는 웹 사이트가 성장함에 따라 속도 저하 없이 증가된 트래픽을 관리하는 데 도움이 됩니다.
  • 사용자 정의 가능한 캐싱: 이 옵션은 필요에 맞게 캐시 만료, 우회 및 업데이트 조건을 유연하게 설정할 수 있는 기능을 제공합니다.
  • 향상된 사용자 경험: 웹사이트 로드 시간이 빨라지면 사용자 경험이 향상되어 방문자 유지 및 SEO 순위에 긍정적인 영향을 미칩니다.
  • 자원 최적화: 서버 리소스 활용도를 최적화하여 동시 요청을 보다 효율적으로 처리합니다.
  • 쉬운 디버깅: 캐시된 콘텐츠를 디버깅하고 검증하는 간단한 메커니즘을 제공하여 원활한 작동을 보장합니다.
  • 호환성: 널리 사용되는 CMS 플랫폼과 원활하게 작동하여 광범위한 구성 없이도 성능을 향상시킵니다.

기술적인 방법을 살펴보면서 Nginx FastCGI 캐시를 구현하는 것은 사이트의 효율성과 사용자 만족도를 향상시키는 전략적 방법이라는 점을 명심하세요. Nginx FastCGI Cache를 사용하여 웹사이트 성능을 향상해 보세요.

Nginx FastCGI 캐시 설정

FastCGI 캐시에 대한 Nginx 구성 파일 편집

구성 파일 열기

먼저, nginx.conf 파일. 우리는 nano 텍스트 편집기를 사용할 것입니다. 하지만 여러분은 자신에게 편한 텍스트 편집기를 사용해도 됩니다. 다음 명령을 입력하세요.

sudo nano /etc/nginx/nginx.conf

FastCGI 매개변수 구성

파일 내에서 HTTP 블록을 찾아 다음 줄을 추가합니다.

fastcgi_cache_path /var/nginx/fastcgi_cache levels=1:2 keys_zone=fcgicache:150m max_size=20g inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

라인을 입력한 후 다음을 누르세요. CTRL + O, 유형 Y을 누른 다음 CTRL + X 나가기 위해서.

FastCGI 매개변수 이해

  • fastcgi_cache_path: 이 매개변수는 FastCGI 캐시를 저장할 위치를 설정합니다(/var/nginx/fastcgi_cache). 캐시된 콘텐츠가 상주할 위치를 지정하므로 필수적입니다.
  • levels=1:2: 캐시 위치 아래에 2단계 디렉터리 계층 구조가 생성됩니다. 이 디자인은 파일을 두 디렉터리에 분산시키는 데 도움이 되며 결과적으로 디스크 I/O 병목 현상의 위험을 줄여줍니다.
  • keys_zone: 공유 메모리 영역의 이름을 지정합니다(fcgicache) 및 크기(150M). 공유 메모리 영역은 캐시 키와 메타데이터를 저장하는 데 중요합니다.
  • max_size: 캐시의 최대 크기를 정의합니다(이 예에서는 20GB). 이 제한에 도달하면 새 파일을 위한 공간을 확보하기 위해 가장 오래된 파일이 제거됩니다.
  • inactive: 액세스되지 않은 데이터가 캐시에서 제거되는 기간을 지정합니다. 이 예에서는 60분으로 설정되어 있습니다.
  • use_temp_path: 다음으로 설정 off 임시 저장 영역을 사용하지 않고 지정된 캐시 폴더에 직접 파일을 쓰도록 Nginx에 지시합니다.
  • fastcgi_cache_key: 캐시 조회를 위한 키를 정의하는데 사용됩니다. Nginx는 이 키의 MD5 해시를 생성하여 캐시 파일 이름으로 사용합니다.

FastCGI 캐시를 위한 Nginx 서버 블록 구성

서버 블록 파일 편집

다음으로 서버 블록 파일을 편집해야 합니다. 이 예에서는 파일 이름이 다음과 같다고 가정합니다. example.com.conf. 다음 명령을 사용하여 엽니다.

sudo nano /etc/nginx/sites-available/example.com.conf

FastCGI 캐시 지시문 삽입

LEMP가 설치되어 있다고 가정하고 PHP 파일의 위치 블록 안에 다음 줄을 삽입하세요.

fastcgi_cache fcgicache;
fastcgi_cache_valid 200 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;
add_header X-FastCGI-Cache $upstream_cache_status;

FastCGI 캐시 지시문 이해

  • fastcgi_cache: 캐싱을 활성화하고 앞서 정의한 공유 메모리 영역을 지정합니다.
  • fastcgi_cache_valid: 특정 HTTP 상태 코드에 대한 캐시 기간을 정의합니다.
  • fastcgi_cache_use_stale: Nginx가 오래된 캐시 응답을 사용할 수 있는 조건을 설정합니다.
  • fastcgi_cache_min_uses: 캐시되기 전에 응답을 요청해야 하는 빈도를 지정합니다.
  • fastcgi_cache_lock: 한 번에 하나의 요청만 새 캐시 요소를 채우도록 하여 '캐시 압류'를 방지합니다.
  • add_header: 사용자 정의 헤더를 추가합니다(X-FastCGI-Cache)를 HTTP 응답에 추가하여 응답이 캐시에서 제공되었는지 여부를 나타냅니다.

Nginx에서 FastCGI 캐시 제거 구성

캐시 제거 설정

캐시 제거를 사용하면 콘텐츠가 만료되기 전에 캐시에서 콘텐츠를 제거할 수 있습니다. 캐시 제거를 구성하려면 서버 블록 파일에 다음 줄을 삽입하여 캐시 제거 지시문을 만듭니다.

location ~ /purge(/.*) {
    # Uncomment the following two lines to allow purge only from the webserver
    allow 127.0.0.1;
    deny all;
    fastcgi_cache_purge fcgicache "$scheme$request_method$host$1";
}

누르다 CTRL + O, 유형 Y을 누른 다음 CTRL + X 텍스트 편집기를 종료합니다.

캐시 제거 문제에 대한 대체 접근 방식

캐시 삭제와 관련된 문제가 발생하면 대신 캐시 만료 시간을 조정할 수 있습니다. 트래픽이 중간에서 높은 웹사이트의 경우 비활성 2시간, 전체 만료 4시간 등 낮은 만료 비율을 설정하는 것이 더 효율적인 경우가 많습니다.

Nginx 서버 테스트 및 다시 시작

구성 테스트

구문 오류나 잘못된 구성을 방지하려면 Nginx 구성의 유효성을 검사하는 것이 중요합니다. 다음 명령을 사용하십시오.

sudo nginx -t

모든 것이 올바른 경우 다음 출력이 표시됩니다.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nginx 서버 다시 시작

마지막으로 Nginx 서버를 다시 시작하여 변경 사항을 적용합니다.

sudo systemctl restart nginx

Nginx FastCGI 캐시 디렉터리 생성 및 최적화

FastCGI 캐시 디렉토리 생성

이제 Nginx가 캐시 파일을 저장할 디렉터리를 만들어 보겠습니다. 이 경로는 이전에 지정되었습니다. nginx.conf 파일:

sudo mkdir -p /var/nginx/fastcgi_cache

tmpfs를 사용하여 캐시 디렉터리 최적화(선택 사항)

시스템에 충분한 RAM이 있으면 다음을 사용하도록 선택할 수 있습니다. tmpfs 캐시를 메모리에 저장합니다. 이로 인해 디스크 스토리지에 비해 액세스 시간이 더 빨라질 수 있습니다. 그러나 RAM에 저장하면 상당한 메모리 리소스가 소모될 수 있으므로 주의하세요. 캐시 디렉토리를 다음과 같이 마운트하는 방법은 다음과 같습니다. tmpfs:

편집하다 /etc/fstab 파일:

sudo nano /etc/fstab

파일 끝에 다음 줄을 추가합니다.

tmpfs   /var/nginx/fastcgi_cache   tmpfs   defaults,size=512M   0 0

이렇게 하면 캐시에 512MB의 RAM이 할당됩니다. 시스템 리소스에 따라 크기를 적절하게 조정할 수 있습니다.

마운트 tmpfs:

sudo mount -a

이 구성을 사용하면 FastCGI 캐시가 메모리에 저장되어 RAM 사용률을 희생하면서 더 빠른 성능을 제공할 수 있습니다.

Nginx FastCGI 캐시 기능 검증

컬을 사용하여 FastCGI 캐시 테스트

다음을 사용하여 FastCGI 캐시가 올바르게 작동하는지 확인할 수 있습니다. curl 명령. 캐시 설정에 따라 캐시 적중이 표시되기 전에 명령을 여러 번 실행해야 할 수도 있습니다.

curl -I http://www.your-domain.com

당신이 가지고 있지 않다면 curl 설치되었으면 다음을 사용하여 설치할 수 있습니다.

sudo apt install curl -y

출력에서 X-FastCGI-Cache: HIT 머리글:

~$ curl -I https://www.example.com/
HTTP/1.1 200 OK
...
X-FastCGI-Cache: HIT
...

이는 요청이 캐시에서 제공되었음을 나타냅니다.

캐시 제외 구성

WordPress 관리 페이지, 댓글 섹션, 사이트맵과 같은 웹사이트 요소는 캐시되어서는 안 됩니다. 이를 캐시하지 않도록 Nginx를 구성하려면 다음 코드를 위에 추가하세요. location (~\.php$) 서버 블록 파일의 줄:

# Cache by default
set $skip_cache 0;

# Don't cache URIs containing the following
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-..php|^/feed/|/tag/./feed/|index.php|/.sitemap..(xml|xsl)") {
    set $skip_cache 1;
}

# Don't cache for logged-in users or comment authors
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
    set $skip_cache 1;
}

# POST requests and URIs with a query string should bypass the cache
if ($request_method = POST) {
    set $skip_cache 1;
}

if ($query_string != "") {
    set $skip_cache 1;
}

캐시 제외 디버깅(선택 사항)

디버깅 목적으로 메모를 추가하려는 경우 각 메모 아래에 사용자 정의 메모를 포함할 수 있습니다. set $skip_cache 1; 다음과 같은 진술:

set $skip_reason "your custom note";

이는 문제 해결 중에 특정 콘텐츠가 캐시되지 않는 이유를 이해하는 데 유용할 수 있습니다.

이러한 구성을 수행한 후 구성을 테스트하고 Nginx를 다시 시작하십시오.

sudo nginx -t
sudo systemctl restart nginx

Nginx FastCGI 캐시에 대한 모범 사례 및 고려 사항

FastCGI 캐싱은 상당한 성능 이점을 제공할 수 있지만 특정 사용 사례 및 서버 리소스에 맞게 구성이 최적화되어 있는지 확인하는 것이 중요합니다.

  • 선택하기 전에 사용 가능한 RAM 용량을 평가하세요. tmpfs 캐싱용. 서버에 다른 중요한 프로세스를 위한 충분한 메모리가 있는지 확인하십시오.
  • 애플리케이션에 맞게 캐시 제외를 조정하세요. 제공된 예는 특히 WordPress용이지만 다른 유형의 애플리케이션에 대해서는 다른 제외가 필요할 수 있습니다.
  • 캐시 사용량과 성능을 정기적으로 모니터링하세요. 캐시가 너무 많은 디스크 공간을 소비하거나 예상대로 성능이 향상되지 않는 경우 그에 따라 캐시 경로, 크기 또는 설정을 조정하는 것이 좋습니다.

결론

글쎄요, 거기 있어요! Ubuntu 서버에 Nginx FastCGI 캐시를 설치하여 동적 콘텐츠를 효율적으로 처리하여 웹 사이트 성능을 향상시키는 단계를 살펴보았습니다. 사이트의 요구 사항에 맞게 캐시 설정을 유지하는 것이 이점을 극대화하는 데 중요하다는 점을 기억하십시오. 최적의 지점을 찾기 위해 설정을 조정하는 것을 주저하지 마십시오. 숙련된 전문가이건 서버 관리가 처음이건 관계없이 이 가이드가 귀하의 웹 존재를 최적화하는 데 도움이 되기를 바랍니다. 간단하게 유지하고 일관성을 유지하여 귀하와 방문자를 위한 더 빠르고 원활한 웹사이트 경험을 제공하세요!

Joshua James

코멘트를 남겨주세요