搜索
首页运维NginxNginx反向代理缓存刷新配置,实时更新网站静态资源

Nginx反向代理缓存刷新配置,实时更新网站静态资源

Jul 04, 2023 pm 04:00 PM
nginx反向代理缓存刷新

Nginx反向代理缓存刷新配置,实时更新网站静态资源

引言:
在Web开发中,静态资源是网站中不可或缺的一部分。然而,经常更新的静态资源可能会导致用户在访问过程中看到旧的版本或者加载速度变慢。解决这个问题的一个有效方法是利用Nginx的反向代理缓存功能,并通过配置实现实时更新网站的静态资源。本文将介绍如何通过Nginx的配置来实现这一功能。

  1. 开启反向代理缓存:
    首先,我们需要在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;
     }
     ...
      }
    }

    说明:

  2. proxy_cache_path:设置反向代理缓存路径以及相关配置。levels是目录层级,keys_zone是缓存区域的名称与大小,max_size设置缓存的最大大小,inactive指定缓存超时时间。
  3. proxy_temp_path:设置临时目录路径。
  4. proxy_cache_key:用于生成缓存key的变量,$scheme表示请求协议,$request_method表示请求方法,$host表示请求的主机名,$request_uri表示请求的URI。
  5. proxy_ignore_headers:指定需要忽略的响应头。
  6. proxy_cache_valid:设置缓存的有效时间。
  7. proxy_cache_use_stale:定义在更新缓存时允许使用陈旧缓存的情况。
  8. 实时更新静态资源:
    若要实现实时更新网站的静态资源,我们需要在后台程序或脚本中添加额外的逻辑,以在每次更新静态资源后发出刷新缓存的请求。以下是一个简单的示例:

在后台程序或脚本中,当静态资源被更新后,发出刷新缓存的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刷新对应的缓存。

  1. 验证:
    为了验证配置的正确性,可以使用浏览器、Postman或类似的工具来发出带有X-Purge-Cache: 1的GET请求。如果刷新缓存成功,再次访问对应的静态资源时,会从后端服务器获取最新版本并更新缓存,确保用户看到的是最新的静态资源。

结论:
通过Nginx的反向代理缓存配置和实时刷新静态资源的方法,我们可以提高网站的性能和访问速度,并确保用户能够实时获取到最新的静态资源。这对于频繁更新的网站尤为重要,同时也能减轻后端服务器的压力,提高网站的稳定性和可靠性。希望本文的介绍对您有所帮助!

以上是Nginx反向代理缓存刷新配置,实时更新网站静态资源的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
终极摊牌:nginx vs. apache终极摊牌:nginx vs. apacheApr 18, 2025 am 12:02 AM

NGINX适合处理高并发请求,Apache适合需要复杂配置和功能扩展的场景。1.NGINX采用事件驱动、非阻塞架构,适用于高并发环境。2.Apache采用进程或线程模型,提供丰富的模块生态系统,适合复杂配置需求。

nginx行动:示例和现实应用程序nginx行动:示例和现实应用程序Apr 17, 2025 am 12:18 AM

NGINX可用于提升网站性能、安全性和可扩展性。1)作为反向代理和负载均衡器,NGINX可优化后端服务和分担流量。2)通过事件驱动和异步架构,NGINX高效处理高并发连接。3)配置文件允许灵活定义规则,如静态文件服务和负载均衡。4)优化建议包括启用Gzip压缩、使用缓存和调整worker进程。

NGINX单元:支持不同的编程语言NGINX单元:支持不同的编程语言Apr 16, 2025 am 12:15 AM

NGINXUnit支持多种编程语言,通过模块化设计实现。1.加载语言模块:根据配置文件加载相应模块。2.应用启动:调用语言运行时执行应用代码。3.请求处理:将请求转发给应用实例。4.响应返回:将处理后的响应返回给客户端。

在Nginx和Apache之间进行选择:适合您的需求在Nginx和Apache之间进行选择:适合您的需求Apr 15, 2025 am 12:04 AM

NGINX和Apache各有优劣,适合不同场景。1.NGINX适合高并发和低资源消耗场景。2.Apache适合需要复杂配置和丰富模块的场景。通过比较它们的核心特性、性能差异和最佳实践,可以帮助你选择最适合需求的服务器软件。

nginx怎么启动nginx怎么启动Apr 14, 2025 pm 01:06 PM

问题:如何启动 Nginx?答案:安装 Nginx启动 Nginx验证 Nginx 是否已启动探索其他启动选项自动启动 Nginx

怎么查看nginx是否启动怎么查看nginx是否启动Apr 14, 2025 pm 01:03 PM

确认 Nginx 是否启动的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 检查端口 80 是否开放;3. 查看系统日志中 Nginx 启动消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

nginx怎么关闭nginx怎么关闭Apr 14, 2025 pm 01:00 PM

要关闭 Nginx 服务,请按以下步骤操作:确定安装类型:Red Hat/CentOS(systemctl status nginx)或 Debian/Ubuntu(service nginx status)停止服务:Red Hat/CentOS(systemctl stop nginx)或 Debian/Ubuntu(service nginx stop)禁用自动启动(可选):Red Hat/CentOS(systemctl disable nginx)或 Debian/Ubuntu(syst

nginx在windows中怎么配置nginx在windows中怎么配置Apr 14, 2025 pm 12:57 PM

如何在 Windows 中配置 Nginx?安装 Nginx 并创建虚拟主机配置。修改主配置文件并包含虚拟主机配置。启动或重新加载 Nginx。测试配置并查看网站。选择性启用 SSL 并配置 SSL 证书。选择性设置防火墙允许 80 和 443 端口流量。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版