首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

nginx - 在http PUT或POST上清除缓存

在这个问答内容中,我们要求解决的问题是如何在使用 Nginx 处理 HTTP PUT 或 POST 请求时清除缓存。

首先,我们需要了解 Nginx 是一个高性能的 HTTP 和反向代理服务器,它可以处理大量的并发连接,提供负载均衡、缓存、安全等功能。

在 Nginx 中,可以使用缓存来提高性能。缓存可以通过配置文件中的 proxy_cache 指令来启用。但是,在某些情况下,我们可能需要在处理 HTTP PUT 或 POST 请求时清除缓存。这可以通过在配置文件中使用 proxy_cache_purge 指令来实现。

以下是一个示例配置,展示了如何在处理 HTTP PUT 或 POST 请求时清除缓存:

代码语言:txt
复制
http {
    proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_valid 200 206 60m;
            proxy_cache_lock on;
            proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
            proxy_cache_bypass $http_cache_control;
            add_header X-Cache-Status $upstream_cache_status;

            proxy_cache_purge PUT POST;
        }
    }
}

在这个配置中,我们使用了 proxy_cache_purge 指令来指定在处理 HTTP PUT 或 POST 请求时清除缓存。这意味着当 Nginx 收到一个 HTTP PUT 或 POST 请求时,它将清除与该请求相关的缓存条目。

需要注意的是,proxy_cache_purge 指令只能用于处理来自客户端的请求,而不能用于处理来自后端服务器的响应。如果需要在处理后端服务器响应时清除缓存,可以使用 proxy_cache_bypass 指令。

最后,需要注意的是,在使用 Nginx 清除缓存时,我们需要确保缓存的数据是可以被安全地清除的。如果缓存的数据包含敏感信息或不应该被清除,我们需要确保在清除缓存之前进行适当的验证。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Ubuntu 和 CentOS如何启用NginxHTTP2 协议支持

    本篇教程中,我们将像你展示如何在安装有 Ubuntu CentOS 作为操作系统的 Linux VPS 使用开启 NginxHTTP/2 协议。...必备条件 为了能够按照本篇教程最终服务器启用 HTTP/2 协议,你需要先安装好 Nginx 。并且确保功能正常而且配置没有错误。... Ubuntu 开启 NginxHTTP/2 协议 为了 Ubuntu VPS 开启 NginxHTTP/2 协议,你需要编辑默认的 Nginx 的服务(server)块,我们使用的是... CentOS 开启 NginxHTTP/2 协议 为了 CentOS VPS 开启 NginxHTTP/2 协议,你需要按照 Ubuntu 完全相同的步骤做。...唯一的不同点是 Nginx 块文件的位置。为了 CentOS 编辑默认的 Nginx 服务块,你需要进入 /etc/nginx/conf.d 这个文件夹。

    1.1K30

    Debian 8使用Varnish和NGINX通过SSL和HTTP提供WordPress服务

    例如,在有4 GB RAM的系统,您可以为Varnish分配23 GB。 进行这些更改后,保存并退出该文件。...) { set req.http.X-Forwarded-For = client.ip; } } 从缓存中排除POST请求具有基本身份验证的请求: /etc/varnish/custom.vcl...我们使用它来设置缓存中保留内容的时间量。我们还可以设置宽限期,它可以决定即使后端服务器关闭,Varnish如何从缓存中提供内容的时间。时间可以以秒(s),分钟(m),小时(h)天(d)来设定。...请查看我们的指向导NGINX配置SSL以获取更多信息,并根据需要更新ssl_certificate和ssl_certificate_key值。...要在编辑页面时自动清除缓存页面,必须安装一个名为“Varnish HTTP Purge”的免费WordPress插件。 要安装此插件,请登录您的WordPress网站,然后单击左侧边栏的插件。

    3K20

    Nginx缓存原理及机制

    但是这里有一点需要额外注意的是:我们刚才通过配置proxy_cache_path命令的keys_zone参数配置内存区大小为10m,这并不会限制缓存数据的大小,实际缓存数据是存储文件系统中的特定文件的元数据副本...Nginx清除缓存 如果缓存过期则需要从缓存中删除过期的缓存文件,防止新旧缓存出现交错出错,当Nginx接收到自定义HTTP头或者PURGE请求时,缓存将会被清除。...配置缓存清除 我们HTTP节点下创建一个新变量$purge_method来标识使用PURGE方法的请求并删除匹配的URL。...但是,这些高速缓存数据不会从缓存中完全删除,它们将保留在磁盘上,直到它们被删除为非活动状态,缓存清除进程处理。...从缓存中完全删除文件 刚才说过了高速缓存数据不会从缓存中完全删除,它们将保留在磁盘上,直到它们被删除为非活动状态,缓存清除进程处理。

    96541

    Nginx28】Nginx学习:代理模块(二)缓存与错误处理

    迭代之间,由 manager_sleep 参数配置的暂停(默认为 50 毫秒)。 启动后一分钟,特殊的“缓存加载器”进程被激活。它将有关存储文件系统的先前缓存数据的信息加载到缓存区域中。...比如说默认情况下,POST 请求是不会被缓存的,如果想要缓存 POST 或者 PUT、DELETE 之类的请求,就需要在这里配置。...如果清除请求的缓存键以星号(“*”)结尾,则所有与通配符键匹配的缓存条目都将从缓存中删除。...、向其传递请求读取响应标头时发生错误 timeout 与服务器建立连接、向其传递请求读取响应标头时发生超时 invalid_header 服务器返回空响应无效响应 http_500、http_502...首先我们 89 这台服务器写一个 PHP 文件,直接抛出 500 异常。 // 192.168.56.89 /usr/local/nginx/html/1.php <?

    96150

    NginxTengine服务器安装证书)

    步骤二:Nginx服务器安装证书 Nginx独立服务器、Nginx虚拟主机上安装证书的具体操作不同,请根据您的实际环境,选择对应的安装步骤。...Nginx独立服务器安装证书 1.登录Nginx服务器。...4.3 配置文件中定位到HTTP协议代码片段(http{}),并在HTTP协议代码里面添加以下server配置(如果server配置已存在,按照以下注释内容修改相应配置即可)。...如果您希望所有的HTTP访问自动跳转到HTTPS页面,则可以需要跳转的HTTP站点下添加以下rewrite语句。...注意:以下代码片段需要放置 nginx.conf文件中 server{} 代码段后面,即设置HTTP请求自动跳转HTTPS后,nginx.conf 文件中会存在两个server {}代码段。

    2.3K31

    搞懂 HTTP 重定向 - 如何优雅地使用 301

    303 See Other 用于 PUT 或者 POST 请求之后进行重定向,这样结果页就不会再次触发重定向了。 304 Not Modified 资源未修改,表示本地缓存仍然可用。...2.1 HTML 重定向 如下代码所示,我们可以通过元素设置http-equiv="Refresh可以实现页面的重定向。...保证已有链接可用:站点的维护是一个长时间的过程,有时,我们进行重构时,会对一些链接路由进行调整,这时候我们内部的 URL 可以修改,但是对于已在被外部引用了的链接却无法修改。...4.1 准备:使用 Nginx 配置 301 永久重定向 Nginx 中,我们可以创建一个 server 块来指定所有内容都进行重定向: server { listen 80; server_name...比如我准备了下面这样一个 nginx.conf 文件。

    21.1K52

    高并发系统设计之缓存

    proxy_busy_buffers_size:HTTP响应从被代理服务器读入且尚未传送给客户端时,该值限制了可以busy buffer中使用的内存数。...on; } } } 这段配置会对通过反向代理的GET、HEAD和POST请求进行缓存,并设置了各种状态码的缓存有效时间。...如果请求的资源没有CDN节点被缓存,那么CDN会向原始服务器请求该资源,然后将它提供给用户,并在本地边缘节点存储一份副本,以便下次有用户请求同样的资源时可以直接提供。...可扩展性:分布式缓存可以很容易地添加更多的节点到系统中,以增加总体的缓存容量。这对于需要处理大量数据的应用是非常重要的。 容错性:如果单个节点失败,那么该节点缓存数据可以从其他节点复制重新计算。...比如,对于大促高峰期,详情系统是最早知道的,我们可以通过部署每台机器的Agent把日志汇总到聚合和分析集群中,然后把符合一定规则的热点数据进行上报,或者是统一接入层使用 Nginx模块统计热点URL

    32130

    高并发系统设计之缓存

    on; } }}这段配置会对通过反向代理的GET、HEAD和POST请求进行缓存,并设置了各种状态码的缓存有效时间。...如果请求的资源没有CDN节点被缓存,那么CDN会向原始服务器请求该资源,然后将它提供给用户,并在本地边缘节点存储一份副本,以便下次有用户请求同样的资源时可以直接提供。...容错性:如果单个节点失败,那么该节点缓存数据可以从其他节点复制重新计算。因此,分布式缓存可以提供比本地缓存更高的可用性和数据持久性。当提及分布式缓存,相信大家会首先想到Redis。...以下是如何开启和配置MySQL查询缓存MySQL服务器配置文件(my.cnfmy.ini)中添加修改如下设置: mysqld query_cache_size = 26214400...比如,对于大促高峰期,详情系统是最早知道的,我们可以通过部署每台机器的Agent把日志汇总到聚合和分析集群中,然后把符合一定规则的热点数据进行上报,或者是统一接入层使用 Nginx模块统计热点URL

    28210

    Nginx-helper纯代码版,文章评论发布自动清理Fastcgi缓存

    Nginx-Helper 这款插件主要用于 Nginx 的 Fastcgi 缓存 Redis 缓存清理,用起来确实不错,堪称绝配!...//清理所有缓存(仅管理员) 范例:http://www.domain.com/?...Check the server logs for a PHP warning." ); } } /** * 删除目录及目录下所有文件删除指定文件 * 代码出自ThinkPHP:http...purge=all 只能用一次,第二次刷新就没效果了,因为被 Nginx 缓存了,要解决也很简单, fastcgi 缓存配置中排除这个路径即可: #后台等特定页面不缓存(其他需求请自行添加即可) if...有模仿能力、动手能力的站长朋友,完全可以以上代码的基础添加自己想要的功能,相信也是小菜一碟。

    1.2K70

    Nginx fastcgi_cache权威指南

    Nginx Web 缓存服务只能为指定URL状态码设置过期时间,不支持类似Squid的PURGE指令手动清除缓存;但是我们可以通过Nginx的模块ngx_cache_purge清除指定URL的缓存。...NGINX商业版中支持proxy_cache_purge指令清除缓存,开源的ngx_cache_purge模块只支持单一key的缓存清除。...NGINX将Cache Key的HASH值作为红黑树节点的KEY。内容缓存文件以该HASH值作为文件名存储磁盘上。...如”/uri/foo”和”/uri/bar”元信息红黑树中完全没有关系。要实现按照目录清除缓存,需要将Cache Key中层次关系存储起来。 可以这样做,共享内存中建立一棵目录树来存储层级关系。...当需要清除某一目录下的所有缓存时,将该节点子树的中的所有缓存清除即可。

    2.4K30

    Hexo之我的个人博客改用自己服务器搭建

    目标 一台 CentOS 7.2 的 ECS 云服务器快速部署基于 Hexo 的博客站点 可以本地简洁快速发布一篇博文到个人云服务器, 用于个人站点展示 技术点 hexo环境搭建 git钩子自动部署...本地配置 小明使用的是mac,下面主要讲一下 MacOS 安装 node.js、 Git、 Hexo Windows & Linux 搜索对应平台软件安装即可 安装 Git Terminal.app...in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' url: http://www.mynamecoder.com...一个是服务器 deploy: - type: git repo: root@94.191.25.157:/root/hexo.git branch: master 部署步骤 将本地部署到服务器 清除缓存...云服务器创建私有 Git 仓库, 通过 Git 钩子,将 Hexo 生成的博客静态页面文件,推送到 Nginx 服务的托管目录, 完成部署。 如有疑问, 可留言或者搜索引擎解决哈。

    2.6K20

    Nginx 各类配置

    已经挂了或者宕机了,随后再过15秒 这15秒内不会有新的请求到达刚刚挂掉的节点,而是会请求到正常运作的 server,15 秒后会再有新请求 尝试连接挂掉的 server,如果还是失败,重复一过程...9、Nginx缓存 1、浏览器缓存 加速用户访问,提升单个用户(浏览器访问者)体验,缓存在本地 2、Nginx 缓存 缓存在 nginc 端,提升所有访问到 nginx 这一端的用户提升访问上游 (...{ proxy_pass http://tomcats; #启用缓存,和 keys_zone 一致 proxy_cache mycache; #针对 200 和 304 状态码缓存时间为8...=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var.../temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi \ --with-http_ssl_module 1.3 编译和安装 make

    60230

    架构高性能网站秘笈(四)——反向代理缓存

    当用户发起请求时,请求首先被反向代理服务器截获,若请求的是静态数据缓存数据,则反向代理服务器直接将数据返回;若请求的是动态数据,且缓存中不存在,则反向代理服务器将请求转发给后端的Web服务器,获取后端服务器的数据后再返回给用户...="POST" && req.request!="PUT" && req.request!="HEAD" && req.request!...4.清除Varnish中的缓存 Varnish提供了两种清除缓存的方式: 通过Varnish命令行 varnishadm -T localhost:8011 purge.url /xxx.html...通过HTTP远程清除缓存 通过Varnish的HTTP服务端口发送如下请求: PURGE /xxx.html HTTP/1.0 Host:Varnish的地址 后端服务器能够使用HTTP方式删除...Varnish的指定的缓存

    1.5K80

    Vue3项目Build后部署NginxF5刷新页面空白404

    环境 vue-cli 5.x vue-router 4.x Nginx 综述 使用Vue3项目Vue-router4开发完毕后项目Build打包部署线上环境后,首页能正常访问菜单内点击切换也没有问题...,但当你刷新页面后,则出现 404 Not Found,故在此记录一下解决办法 解决思路 与chatGPT进行深刻激烈的探讨后,确定了是Nginx的问题,根据chatGPT的引导进行配置依旧无法解决...,刷新页面时访问的资源服务端找不到,因为此时vue-router设置路由地址被当作url地址,此时的地址路径肯定不是真实存在的,所以出现404现象。...之所以出现上面的现象,是因为nginx配置的根目录/www/wwwroot/dist下面压根没有'XXX/xxx/xxx'这个真实资源存在,这些访问资源都是js里渲染的。...解决问题 服务端nginx配置里添加vue-route的跳转设置,正确配置如下: server { listen 80; server_name www.vvhan.com;

    2.2K40

    WP Super Cache静态缓存插件纯代码版(兼容多域名网站)

    我利用午休的时间,仔细看了下这篇文章,发现博主原代码的基础,还加上了自动刷新缓存的机制,不过貌似是和 WP Super Cache 插件一样,只要更新文章,就会清除所有缓存,感觉不太适合我。...以前分享这个跳转的时候,我下意识的以为,这种跳转可以兼容任意缓存,比如 cos-html-cache 等。实际发现,这种跳转只能兼容 wp super cache!...②、找回 Mod_rewrite 模式 如果想要在 nginx 下实现 mod_rewrite 模式,需要在 nginx 下新增一些规则,这个张戈博客已经分享过(相关文章) 开启这个模式的好处是,当存在静态缓存文件时...③、提交评论时清除文章缓存 这是张戈博客之前的文章就分享过的方法(相关文章),这次只要稍微修改下路径就可以用了!...的静态缓存 五、写到最后 这篇文章是我一边测试、一边记录的情况下完成的!

    2.1K70

    009.Nginx缓存及配置

    它不缓存响应Cache-Control设置为Private,No-CacheNo-StoreSet-Cookie响应头。NGINX缓存GET和HEAD客户端请求。...,用于共享内存中定义一块存储区域来存放缓存的 key 和 metadata(类似于使用次数),这样 nginx 可以快速判断一个 request 是否命中缓存。...: 缓存管理器:定期检查缓存状态,看缓存总量是否超出限制,如果超出,就移除其中最少使用的部分 缓存加载器:加载器只nginx启动后运行一次,把缓存内容的元数据信息加载到内存空间,如果一次性加载全部缓存信息...之后使用url访问即可清除对应缓存,如cache.linuxds.com/purge/nginx.png即可清除cache.linuxds.com/nginx.png此文件的缓存。...4.2 脚本清除 清除缓存脚本如下,必须在缓存服务器执行, [root@nginx01 ~]# vi nginx_cache_clean.sh 1 #!

    5.3K30
    领券