Nginx 역방향 프록시 캐시 새로 고침 구성, 웹사이트 정적 리소스의 실시간 업데이트
소개:
웹 개발에서 정적 리소스는 웹사이트에 없어서는 안 될 부분입니다. 그러나 자주 업데이트되는 정적 리소스로 인해 사용자가 액세스하는 동안 이전 버전이 표시되거나 로드가 느려질 수 있습니다. 이 문제를 해결하는 효과적인 방법은 Nginx의 역방향 프록시 캐싱 기능을 사용하고 웹사이트의 정적 리소스를 실시간으로 업데이트하도록 구성하는 것입니다. 이 기사에서는 Nginx 구성을 통해 이 기능을 구현하는 방법을 소개합니다.
역방향 프록시 캐시 활성화:
먼저 Nginx 구성에서 역방향 프록시 캐시를 활성화해야 합니다. Nginx 구성 파일(일반적으로 nginx.conf)을 찾아 연 후 http 섹션을 찾아 다음 구성을 추가합니다.
http { proxy_cache_path /path/to/cache/directory levels=1:2 keys_zone=cache_zone:10m max_size=10g inactive=60m; proxy_temp_path /path/to/temporary/directory; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_ignore_headers "Cache-Control" "Expires"; proxy_cache_valid any 10m; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; server { ... location / { proxy_cache cache_zone; proxy_pass http://backend-server; } ... } }
지침:
proxy_cache_path
: 역방향 프록시 캐시 경로를 설정하고 관련 구성 . levels
는 디렉터리 수준이고, keys_zone
은 캐시 영역의 이름과 크기이며, max_size
는 캐시의 최대 크기를 설정합니다. inactive
캐시 시간 초과를 지정합니다. proxy_cache_path
:设置反向代理缓存路径以及相关配置。levels
是目录层级,keys_zone
是缓存区域的名称与大小,max_size
设置缓存的最大大小,inactive
指定缓存超时时间。proxy_temp_path
:设置临时目录路径。proxy_cache_key
:用于生成缓存key的变量,$scheme表示请求协议,$request_method表示请求方法,$host表示请求的主机名,$request_uri表示请求的URI。proxy_ignore_headers
:指定需要忽略的响应头。proxy_cache_valid
:设置缓存的有效时间。proxy_cache_use_stale
:定义在更新缓存时允许使用陈旧缓存的情况。在后台程序或脚本中,当静态资源被更新后,发出刷新缓存的HTTP请求:
import requests def refresh_cache(): url = "http://your-nginx-server/purge-url" headers = {"Host": "your-hostname"} response = requests.get(url, headers=headers) if response.status_code == 200: print("Cache refreshed successfully!") else: print("Failed to refresh cache.")
Nginx的配置文件中,配置地址路由与缓存刷新:
location ~ /purge-url { internal; proxy_cache_purge cache_zone "$scheme$request_method$host$request_uri$is_args$args"; }
说明:
location
:配置处理刷新缓存请求的路由。internal
:表示该路由只能被内部请求访问,外部请求无法访问。proxy_cache_purge
:配置要刷新的缓存区域及相关参数。通过以上配置,当发出带有X-Purge-Cache: 1
的GET请求到http://your-nginx-server/purge-url
时,Nginx会根据请求的URI刷新对应的缓存。
X-Purge-Cache: 1
proxy_temp_path
: 임시 디렉터리 경로를 설정합니다. proxy_cache_key
: 캐시 키를 생성하는 데 사용되는 변수, $scheme은 요청 프로토콜, $request_method는 요청 방법, $host는 요청된 호스트 이름, $request_uri는 요청된 URI를 나타냅니다.
proxy_ignore_headers
: 무시해야 하는 응답 헤더를 지정합니다. 🎜🎜proxy_cache_valid
: 캐시 유효 시간을 설정합니다. 🎜🎜proxy_cache_use_stale
: 캐시를 업데이트할 때 오래된 캐시를 사용할 수 있는 상황을 정의합니다. 🎜🎜실시간으로 정적 리소스 업데이트: 🎜웹 사이트의 정적 리소스를 실시간으로 업데이트하려면 백그라운드 프로그램이나 스크립트에 추가 로직을 추가하여 정적 리소스를 업데이트할 때마다 캐시 새로 고침 요청을 발행해야 합니다. 자원. 다음은 간단한 예입니다. 🎜🎜🎜백그라운드 프로그램 또는 스크립트에서 정적 리소스가 업데이트되면 HTTP 요청을 실행하여 캐시를 새로 고칩니다. 🎜rrreee🎜Nginx 구성 파일에서 주소 라우팅 및 캐시 새로 고침을 구성합니다. 🎜 rrreee🎜 설명: 🎜location
: 캐시 새로 고침 요청을 처리하도록 경로를 구성합니다. 🎜🎜internal
: 경로는 내부 요청으로만 액세스할 수 있고 외부 요청으로는 액세스할 수 없음을 나타냅니다. 🎜🎜proxy_cache_purge
: 새로 고칠 캐시 영역 및 관련 매개변수를 구성합니다. 🎜X-Purge-Cache: 1
을 사용하여 http://your-nginx-server/purge-url
로 GET 요청을 발행할 때 code>, Nginx는 요청된 URI에 따라 해당 캐시를 새로 고칩니다. 🎜X-Purge-Cache: 1
로 GET을 실행할 수 있습니다. 묻다. 캐시가 성공적으로 새로 고쳐지면 해당 정적 리소스에 다시 액세스할 때 백엔드 서버에서 최신 버전을 가져오고 사용자가 최신 정적 리소스를 볼 수 있도록 캐시가 업데이트됩니다. 🎜🎜🎜결론: 🎜Nginx의 역방향 프록시 캐시 구성과 정적 리소스를 실시간으로 새로 고치는 방법을 통해 웹 사이트의 성능과 액세스 속도를 향상시키고 사용자가 최신 정적 리소스를 실시간으로 얻을 수 있도록 보장할 수 있습니다. 이는 자주 업데이트되는 웹사이트에 특히 중요합니다. 또한 백엔드 서버에 대한 부담을 줄이고 웹사이트의 안정성과 신뢰성을 향상시킬 수도 있습니다. 이 소개가 여러분에게 도움이 되기를 바랍니다! 🎜위 내용은 Nginx 역방향 프록시 캐시 구성 새로 고침 및 웹 사이트 정적 리소스를 실시간으로 업데이트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!