>운영 및 유지보수 >엔진스 >Nginx의 역방향 프록시 캐시 및 동적 콘텐츠 캐시 구현 세부 정보 분석

Nginx의 역방향 프록시 캐시 및 동적 콘텐츠 캐시 구현 세부 정보 분석

王林
王林원래의
2023-08-25 15:33:381372검색

Nginx의 역방향 프록시 캐시 및 동적 콘텐츠 캐시 구현 세부 정보 분석

Nginx의 역방향 프록시 캐시와 동적 콘텐츠 캐시의 구현 세부 사항을 분석하세요

Nginx는 고성능 웹 서버이자 역방향 프록시 서버입니다. 실제 웹 애플리케이션에서는 웹사이트의 액세스 속도와 성능을 향상시키기 위해 역방향 프록시 캐싱과 동적 콘텐츠 캐싱을 사용하여 웹페이지 로딩 및 응답 속도를 높여야 하는 경우가 많습니다. 이 기사에서는 Nginx의 역방향 프록시 캐시 및 동적 콘텐츠 캐시의 구현 세부 사항을 자세히 분석하고 해당 코드 예제를 제공합니다.

1. 역방향 프록시 캐시 구현 세부정보

역방향 프록시 캐시는 Nginx가 역방향 프록시 서버 역할을 하는 동시에 다음 번에 동일한 리소스를 요청할 때 클라이언트 요청의 응답 결과를 자체 메모리나 디스크에 캐시할 수도 있음을 의미합니다. , 캐시된 결과가 직접 반환되므로 액세스 속도가 향상되고 백엔드 서버에 대한 부담이 줄어듭니다.

  1. 역방향 프록시 캐시 활성화

먼저 Nginx 구성 파일에서 역방향 프록시 캐시 기능을 활성화해야 합니다. http 모듈에 다음 구성 정보를 추가할 수 있습니다.

http {
    ...
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

    server {
        ...
    }
}

위 구성에서 proxy_cache_path는 캐시 경로 및 관련 매개변수를 지정합니다. levels 매개변수는 캐시의 디렉터리 구조를 지정하고, keys_zone 매개변수는 캐시의 이름과 크기를 지정하고, max_size 매개변수는 최대값을 지정합니다. inactive 매개변수는 캐시 만료 시간을 지정하고, use_temp_path 매개변수는 캐싱에 임시 경로를 사용할지 여부를 지정합니다. 위 구성에서는 my_cache라는 캐시를 사용하고 있습니다. proxy_cache_path指定了缓存的路径和相关参数。levels参数指定了缓存的目录结构,keys_zone参数指定了缓存的名称和大小,max_size参数指定了缓存的最大容量,inactive参数指定了缓存的过期时间,use_temp_path参数指定了是否使用临时路径进行缓存。在上述配置中,我们使用了名为my_cache的缓存。

  1. 配置反向代理缓存的规则

在Nginx的配置文件中,可以通过location指令来配置反向代理缓存的规则。例如,我们可以将指定的URL路径进行缓存,具体的配置如下所示:

server {
    ...
    
    location /cached {
        proxy_cache my_cache;
        proxy_cache_valid 200 304 10m;
        proxy_cache_use_stale error timeout invalid_header http_500;
        proxy_cache_background_update on;
        proxy_pass http://backend_server;
    }
}

以上配置中,proxy_cache指定了使用哪个缓存,proxy_cache_valid指定了缓存的有效期,proxy_cache_use_stale指定了当缓存过期时是否使用旧的缓存进行响应,proxy_cache_background_update指定了是否后台更新缓存,proxy_pass指定了后端服务器的地址。

  1. 清除缓存

有时候需要手动清除缓存,可以使用proxy_cache_purge模块来实现。在Nginx的配置文件中,可以添加以下配置:

location /purge {
    bproxy_cache_purge my_cache "$scheme$request_method$host$request_uri";
}

以上配置中,proxy_cache_purge指定了清除缓存的命令,并传递了缓存的名称和请求的URI。

二、动态内容缓存的实现细节

动态内容缓存是指Nginx在反向代理服务器的同时,也可以将动态生成的内容进行缓存,以减轻后端服务器的负载和提高响应速度。

  1. 启用动态内容缓存

首先需要在Nginx的配置文件中启用动态内容缓存的功能。在http模块内可以添加以下配置信息:

http {
    ...
    fastcgi_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

    server {
        ...
    }
}

以上配置中,fastcgi_cache_path指定了缓存的路径和相关参数,与反向代理缓存的配置类似。同样,我们使用了名为my_cache的缓存。

  1. 配置动态内容缓存的规则

在Nginx的配置文件中,也可以通过location指令来配置动态内容缓存的规则。例如,我们可以将指定的URL路径的动态内容进行缓存,具体的配置如下所示:

server {
    ...
    
    location /dynamic {
        fastcgi_cache my_cache;
        fastcgi_cache_valid 200 10m;
        fastcgi_cache_methods GET HEAD;
        fastcgi_cache_use_stale error timeout invalid_header http_500;
        fastcgi_cache_lock on;
        fastcgi_cache_lock_timeout 5s;
        fastcgi_pass backend_server;
    }
}

以上配置中,fastcgi_cache指定了使用哪个缓存,fastcgi_cache_valid指定了缓存的有效期,fastcgi_cache_methods指定了哪些HTTP方法会被缓存,fastcgi_cache_use_stale指定了当缓存过期时是否使用旧的缓存进行响应,fastcgi_cache_lock指定了是否启用缓存锁和锁的超时时间,fastcgi_pass指定了后端服务器的地址。

  1. 清除缓存

同样地,有时候需要手动清除缓存,可以使用fastcgi_cache_purge模块来实现。在Nginx的配置文件中,可以添加以下配置:

location /purge {
    fastcgi_cache_purge my_cache "$scheme$request_method$host$request_uri";
}

以上配置中,fastcgi_cache_purge

    역방향 프록시 캐시 규칙 구성

    🎜Nginx 구성 파일에서 location 지시문을 통해 역방향 프록시 캐시 규칙을 구성할 수 있습니다. 예를 들어 지정된 URL 경로를 캐시할 수 있습니다. 구체적인 구성은 다음과 같습니다. 🎜rrreee🎜위 구성에서 proxy_cache는 사용할 캐시를 지정하고 proxy_cache_valid는 지정합니다. 캐시의 유효 기간인 proxy_cache_use_stale는 캐시가 만료될 때 응답하기 위해 기존 캐시를 사용할지 여부를 지정하고, proxy_cache_Background_update는 백그라운드에서 캐시를 업데이트할지 여부를 지정하며, Proxy_pass는 백엔드 서버의 주소를 지정합니다. 🎜
      🎜캐시 지우기🎜🎜🎜때로는 캐시를 수동으로 지워야 하는 경우 proxy_cache_purge 모듈을 사용하면 됩니다. Nginx 구성 파일에 다음 구성을 추가할 수 있습니다. 🎜rrreee🎜위 구성에서 proxy_cache_purge는 캐시를 지우는 명령을 지정하고 캐시 이름과 요청된 URI를 전달합니다. 🎜🎜2. 동적 콘텐츠 캐싱 구현 세부정보🎜🎜동적 콘텐츠 캐싱은 Nginx가 역방향 프록시 서버 역할을 하면서 동적으로 생성된 콘텐츠를 캐시하여 백엔드 서버의 부하를 줄이고 응답 속도를 향상시킬 수도 있음을 의미합니다. 🎜🎜🎜동적 콘텐츠 캐싱 활성화🎜🎜🎜먼저 Nginx 구성 파일에서 동적 콘텐츠 캐싱 기능을 활성화해야 합니다. http 모듈에 다음 구성 정보를 추가할 수 있습니다. 🎜rrreee🎜위 구성에서 fastcgi_cache_path는 역방향 프록시 캐시 구성과 유사한 캐시 경로 및 관련 매개변수를 지정합니다. 이번에도 my_cache라는 캐시를 사용합니다. 🎜
        🎜동적 콘텐츠 캐싱 규칙 구성🎜🎜🎜Nginx 구성 파일에서 location 지시문을 통해 동적 콘텐츠 캐싱 규칙을 구성할 수도 있습니다. 예를 들어, 지정된 URL 경로의 동적 콘텐츠를 캐시할 수 있습니다. 구체적인 구성은 다음과 같습니다. 🎜rrreee🎜위 구성에서 fastcgi_cache는 사용할 캐시를 지정합니다. fastcgi_cache_valid code >캐시 유효 기간을 지정하고, <code>fastcgi_cache_methods는 캐시할 HTTP 메소드를 지정하고, fastcgi_cache_use_stale는 캐시가 만료될 때 응답하기 위해 이전 캐시를 사용할지 여부를 지정하고, fastcgi_cache_lock 는 캐시 잠금 및 잠금 시간 제한 활성화 여부를 지정하고 fastcgi_pass는 백엔드 서버의 주소를 지정합니다. 🎜
          🎜캐시 지우기🎜🎜🎜마찬가지로 캐시를 수동으로 지워야 하는 경우가 있는데 fastcgi_cache_purge 모듈을 사용하면 됩니다. Nginx 구성 파일에 다음 구성을 추가할 수 있습니다. 🎜rrreee🎜위 구성에서 fastcgi_cache_purge는 캐시를 지우는 명령을 지정하고 캐시 이름과 요청된 URI를 전달합니다. 🎜🎜요약하자면, 이 글에서는 Nginx의 역방향 프록시 캐시와 동적 콘텐츠 캐시의 구현 세부 사항을 자세히 분석하고 해당 코드 예제를 제공합니다. Nginx의 캐싱 기능을 올바르게 구성하고 사용하면 웹 애플리케이션의 성능과 사용자 경험을 크게 향상시킬 수 있습니다. 🎜

위 내용은 Nginx의 역방향 프록시 캐시 및 동적 콘텐츠 캐시 구현 세부 정보 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.