>  기사  >  운영 및 유지보수  >  웹사이트 변경에 실시간으로 대응하기 위한 Nginx 프록시 캐시 업데이트 구성

웹사이트 변경에 실시간으로 대응하기 위한 Nginx 프록시 캐시 업데이트 구성

WBOY
WBOY원래의
2023-07-04 08:54:092005검색

Nginx 프록시 캐시 업데이트 구성, 웹 사이트 변경에 대한 실시간 응답

요약: 이 기사에서는 Nginx 프록시 캐시 업데이트 구성을 사용하여 웹 사이트 콘텐츠가 변경될 때 업데이트에 즉시 응답하고 웹 사이트 성능과 사용자 경험을 개선하는 방법을 소개합니다. 동시에 독자들이 이 기능을 더 잘 이해하고 적용할 수 있도록 몇 가지 실용적인 코드 예제를 제공할 것입니다.

  1. 소개
    Nginx는 인터넷 애플리케이션 배포에 널리 사용되는 고성능 HTTP 및 역방향 프록시 서버입니다. 프록시 모드에서 Nginx는 웹 사이트의 정적 콘텐츠를 캐시하고, 소스 서버의 로드를 줄이고, 웹 사이트 액세스 속도를 높일 수 있습니다. 그러나 웹사이트 콘텐츠가 변경되면 Nginx의 기본 구성은 캐시를 즉시 업데이트하지 않으므로 사용자에게 이전 페이지 콘텐츠가 표시됩니다. 이 문제를 해결하기 위해 몇 가지 트릭과 구성을 통해 Nginx 프록시 캐시를 즉시 업데이트할 수 있습니다.
  2. 구성 파일 수정
    먼저 웹 사이트 콘텐츠가 업데이트될 때 캐시가 실시간으로 새로 고쳐질 수 있도록 Nginx 구성 파일을 수정해야 합니다. 다음 구성 항목을 통해 이를 달성할 수 있습니다.
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;
proxy_cache_key "$request_method|$host|$request_uri";
proxy_cache_valid 200 301 302 10m;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;

그 중 proxy_cache_path는 캐시 파일의 저장 경로와 크기 제한을 지정하고, proxy_cache_key는 캐시 키 이름을 정의합니다. , 요청된 URL이 변경될 때마다 캐시가 새로 고쳐질 수 있는지 확인하세요. proxy_cache_validproxy_cache_use_stale의 캐시 유효 기간을 지정하는 데 사용됩니다. 오류가 발생하면 만료된 캐시를 사용할 수 있습니다. proxy_cache_path指定了缓存文件的存储路径和大小限制;proxy_cache_key定义了缓存的键名,保证每次请求URL有所变化时能够刷新缓存;proxy_cache_valid用于指定HTTP响应码200、301、302的缓存有效期;proxy_cache_use_stale则是在源服务器出现错误时,允许使用过期的缓存。

  1. 缓存更新规则
    在默认情况下,Nginx只有在缓存过期后才会主动去源服务器请求新的内容。而我们希望能够在网站内容发生变化时,即时更新缓存。为了实现这个目标,可以通过以下的配置项来设置缓存更新规则:
if ( $request_method = POST ) {
    add_header X-Nginx-Cache "BYPASS";
    proxy_cache_bypass $http_cache_control;
    proxy_no_cache 1;
}

上述配置将捕获POST请求,并在响应头中添加X-Nginx-Cache字段,用于标识该请求需要绕过缓存。同时,proxy_cache_bypassproxy_no_cache指令将确保这个请求不会被缓存。

  1. 脚本定时运行
    为了实现缓存的定时更新,我们可以编写一个脚本,通过定时任务的方式来刷新Nginx的缓存。具体的脚本内容如下:
#!/bin/bash

curl -X PURGE http://localhost/page1
curl -X PURGE http://localhost/page2
curl -X PURGE http://localhost/page3

注意到上述脚本中使用了curl

    캐시 업데이트 규칙
      기본적으로 Nginx는 캐시가 만료된 후에만 소스 서버로 적극적으로 이동하여 새 콘텐츠를 요청합니다. 그리고 웹사이트 콘텐츠가 변경되면 즉시 캐시를 업데이트할 수 있기를 원합니다. 이 목표를 달성하기 위해 다음 구성 항목을 통해 캐시 업데이트 규칙을 설정할 수 있습니다.

    1. rrreee
    2. 위 구성은 POST 요청을 캡처하고 응답에 X-Nginx-Cache 필드를 추가합니다. 헤더 요청이 캐싱을 우회해야 함을 식별합니다. 동시에 proxy_cache_bypassproxy_no_cache 지시문은 이 요청이 캐시되지 않도록 보장합니다.
      🎜스크립트는 정기적으로 실행됩니다🎜정기적인 캐시 업데이트를 구현하기 위해 예약된 작업을 통해 Nginx의 캐시를 새로 고치는 스크립트를 작성할 수 있습니다. 구체적인 스크립트 내용은 다음과 같습니다. 🎜🎜rrreee🎜 위 스크립트에서는 curl 명령을 사용하여 특정 페이지의 캐시를 지우기 위해 Nginx에 PURGE 요청을 보냅니다. 실제 상황에 따라 캐시를 새로 고쳐야 하는 페이지 URL을 스크립트에 추가할 수 있습니다. 그런 다음 예약된 작업 도구(예: cron)를 사용하여 이 스크립트를 정기적으로 실행하여 캐시에 대한 예약된 업데이트를 수행합니다. 🎜🎜🎜결론🎜이 글에서는 Nginx 프록시 캐시 업데이트 구성을 사용하여 웹사이트 콘텐츠가 변경될 때 즉각적인 응답을 얻는 방법을 소개합니다. Nginx 구성 파일을 수정하고, 캐시 저장 경로와 업데이트 규칙을 설정하고, 정기적으로 실행되는 스크립트를 작성하여 이 기능을 수행합니다. 이 기능을 사용하면 웹 사이트 성능과 사용자 경험을 효과적으로 개선하고 사용자 요청으로 인해 소스 서버에 가해지는 부담을 줄일 수 있습니다. 독자들이 이 글의 소개와 샘플 코드를 통해 Nginx의 프록시 캐시 업데이트 구성을 더 잘 이해하고 적용할 수 있기를 바랍니다. 🎜🎜

위 내용은 웹사이트 변경에 실시간으로 대응하기 위한 Nginx 프록시 캐시 업데이트 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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