>운영 및 유지보수 >엔진스 >웹사이트 콘텐츠를 최신 상태로 유지하기 위한 Nginx 캐시 정리 구성

웹사이트 콘텐츠를 최신 상태로 유지하기 위한 Nginx 캐시 정리 구성

王林
王林원래의
2023-07-05 22:28:353539검색

웹사이트 콘텐츠를 업데이트하기 위한 Nginx 캐시 정리 구성

웹사이트를 구축할 때 웹사이트 액세스 속도를 높이고 정적 파일을 캐시하기 위해 Nginx를 역방향 프록시 서버로 사용하는 경우가 많습니다. 그러나 웹사이트 콘텐츠를 업데이트할 때 사용자가 최신 콘텐츠에 계속 액세스할 수 있도록 제때에 Nginx의 캐시를 지워야 합니다. 이 기사에서는 웹 사이트 콘텐츠를 최신 상태로 유지하기 위해 Nginx 캐시 정리를 구성하는 방법을 소개합니다.

1. 캐시 경로 구성

먼저 Nginx의 캐시 경로를 구성해야 합니다. Nginx 구성 파일(일반적으로 /etc/nginx/nginx.conf 또는 /etc/nginx/conf.d/default.conf)을 열고 http 섹션에 다음 구성을 추가합니다. <code>/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf,找到http段,添加以下配置:

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

    server {
        ...
    }
    ...
}

上述配置将缓存文件存储在/var/cache/nginx目录下,并设置了缓存大小为10GB,缓存过期时间为60分钟。需要根据实际情况进行调整。

二、配置缓存清理接口

接下来,我们需要配置一个接口用于清理Nginx的缓存。

在Nginx的配置文件中,找到需要清理缓存的地方,比如一个POST请求:

http {
    ...
    server {
        ...
        location /update {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;

            # 清理缓存
            proxy_cache_purge my_cache GET POST;
        }
        ...
    }
    ...
}

上述配置中,location /update用于匹配需要更新的URL路径,比如/updateproxy_cache_purge指令用于清理缓存,参数GET POST表示同时清理GET和POST请求的缓存。可以根据实际情况进行调整。

三、安装Purge模块

Nginx的默认安装中并不包含proxy_cache_purge模块,我们需要手动安装。

使用以下命令安装Nginx的模块管理工具:

yum install -y yum-utils

使用以下命令添加Nginx的扩展源:

yum-config-manager --add-repo=https://nginx.org/packages/centos/7/x86_64/

最后,使用以下命令安装Nginx的nginx-module-cache-purge模块:

yum install -y nginx-module-cache-purge

四、重启Nginx服务

完成以上配置后,需要重启Nginx服务使配置生效。使用以下命令重启Nginx:

systemctl restart nginx

五、清理缓存的方式

现在,我们可以通过访问清理缓存的接口来实现清理Nginx的缓存。比如,如果我们要清理/update路径的缓存,可以使用以下命令:

curl -X POST http://yourdomain.com/update

这样就会触发Nginx清理/update路径下的缓存。

六、自动清理缓存

为了保证网站内容的更新,我们可以通过定期清理缓存的方式,自动保持Nginx中的缓存与实际网站内容的一致性。

我们可以使用定时任务工具(如Cron)来定期执行清理缓存的命令。比如,设置每天凌晨4点清理一次缓存,可以使用以下命令编辑定时任务:

crontab -e

然后添加以下一行命令:

0 4 * * * curl -X POST http://yourdomain.com/update >> /tmp/nginx_cache_clear.log 2>&1

保存并退出编辑器,这样每天凌晨4点就会触发一次清理缓存的操作,并将执行结果保存在/tmp/nginx_cache_clear.logrrreee

위 구성은 캐시 파일을 /var/cache/nginx 디렉터리에 저장하고 캐시 크기를 10GB로 설정하고 캐시 만료 시간을 60으로 설정합니다. 분. 실제 상황에 따라 조정이 필요합니다.

2. 캐시 정리 인터페이스 구성

다음으로 Nginx 캐시를 정리하기 위한 인터페이스를 구성해야 합니다. 🎜🎜Nginx 구성 파일에서 POST 요청과 같이 캐시를 지워야 하는 위치를 찾습니다. 🎜rrreee🎜위 구성에서는 location /update를 사용하여 URL 경로를 일치시킵니다. 업데이트가 필요한 항목(예: /update) proxy_cache_purge 지시문은 캐시를 지우는 데 사용되며, GET POST 매개변수는 GET 및 POST 요청의 캐시를 동시에 지우는 것을 의미합니다. 실제 상황에 따라 조정될 수 있습니다. 🎜🎜3. 퍼지 모듈 설치 🎜🎜Nginx의 기본 설치에는 proxy_cache_purge 모듈이 포함되어 있지 않으므로 수동으로 설치해야 합니다. 🎜🎜다음 명령을 사용하여 Nginx의 모듈 관리 도구를 설치합니다. 🎜rrreee🎜다음 명령을 사용하여 Nginx의 확장 소스를 추가합니다. 🎜rrreee🎜마지막으로 다음 명령을 사용하여 Nginx의 nginx-module-cache-purge를 설치합니다. code> module :🎜rrreee🎜4. Nginx 서비스 다시 시작🎜🎜위 구성을 완료한 후 구성을 적용하려면 Nginx 서비스를 다시 시작해야 합니다. Nginx를 다시 시작하려면 다음 명령을 사용하십시오. 🎜rrreee🎜 5. 캐시를 지우는 방법 🎜🎜 이제 클린 캐시 인터페이스에 액세스하여 Nginx 캐시를 정리할 수 있습니다. 예를 들어, <code>/update 경로에서 캐시를 지우려면 다음 명령을 사용할 수 있습니다: 🎜rrreee🎜이렇게 하면 Nginx가 /update 경로입니다. 🎜🎜 6. 자동으로 캐시 지우기 🎜🎜 웹사이트 콘텐츠가 업데이트되었는지 확인하기 위해 정기적으로 캐시를 정리하여 Nginx의 캐시와 실제 웹사이트 콘텐츠 간의 일관성을 자동으로 유지할 수 있습니다. 🎜🎜Cron과 같은 예약 작업 도구를 사용하여 정기적으로 캐시 지우기 명령을 실행할 수 있습니다. 예를 들어 매일 오전 4시에 캐시가 지워지도록 설정하려면 다음 명령을 사용하여 예약된 작업을 편집할 수 있습니다. 🎜rrreee🎜 그런 다음 다음 명령 줄을 추가합니다. 🎜rrreee🎜 저장하고 편집기를 종료합니다. 매일 오전 4시에 캐시 삭제 작업이 실행되며, 실행 결과는 <code>/tmp/nginx_cache_clear.log 파일에 저장됩니다. 🎜🎜요약🎜🎜위 구성을 통해 Nginx 캐시를 자동으로 정리하고 웹사이트 콘텐츠를 최신 상태로 유지할 수 있습니다. 동시에 다양한 웹 사이트 요구 사항에 맞게 필요에 따라 캐시 경로와 정리 방법을 유연하게 조정할 수도 있습니다. 🎜

위 내용은 웹사이트 콘텐츠를 최신 상태로 유지하기 위한 Nginx 캐시 정리 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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