apache-2.2 – 如何在apache和nginx服务的所有404页面中添加no-cache标头?

我最近在切换到Cloudflare之后遇到了一个问题,解决方案是基本上阻止Cloudflare缓存404响应.

在我们的负载均衡的多服务器设置中,偶尔会发生404,但它们很快就会被rsync(通过lsyncd)修复.在Cloudflare之前,对404ed文件的重新请求将很快变为200,因为rsync完成了它的工作.

但是,由于Cloudflare基于缓存头缓存所有数据,并且apache和nginx都没有为404发送无缓存头,因此Cloudflare最终会缓存404响应一段时间.

我一直在寻找一个解决方案,在apache和nginx(全局,所有托管域)中为404s全局添加这样的标头,但到目前为止已经空白了.

有人可以帮忙吗?

谢谢.

最佳答案
你能不能使用error_page指令,然后用添加的标题分别处理位置?

例如在Nginx:

    server {
      ...
      error_page 404 /404.html;
      location = /404.html {
        root   /usr/share/nginx/html;
        add_header Cache-Control "no-cache" always;
      }
    }

相关文章

文章浏览阅读3.7k次,点赞2次,收藏5次。Nginx学习笔记一、N...
文章浏览阅读1.7w次,点赞14次,收藏61次。我们在使用容器的...
文章浏览阅读1.4k次。当用户在访问网站的过程中遇到404错误时...
文章浏览阅读2.7k次。docker 和 docker-compose 部署 nginx+...
文章浏览阅读1.3k次。5:再次启动nginx,可以正常启动,可以...
文章浏览阅读3.1w次,点赞105次,收藏182次。高性能:Nginx ...