标签: cache

为从 nginx 提供的静态内容设置过期标头

我正在使用 nginx 来为我的静态内容提供服务,有没有办法为每个满足特定规则的文件设置过期标头?例如,我可以为所有扩展名为“.css”的文件设置 expires 标头吗?

nginx cache

112
推荐指数
5
解决办法
17万
查看次数

使用 Nginx 提供静态文件时禁用缓存(用于开发)

我们正在使用 Nginx 在开发平台上提供静态文件。由于它是一个开发平台,我们希望禁用缓存,以便将每个更改传播到服务器。VHost 的配置非常简单:

server {
  server_name  static.server.local;
  root /var/www/static;

  ## Default location
  location / {
    access_log        off;
    expires           0;
    add_header        Cache-Control private;
  } 
}
Run Code Online (Sandbox Code Playgroud)

当我们访问一个 HTML 文件(http://static.server.local/test.html)时,我们没有问题:只要文件没有改变,服务器就会返回一个代码304 Not Modified,并返回一个200 OK响应更改文件时修改的文件。
但是,对于 Javascript 或 CSS 文件,它的行为似乎有所不同。文件更改后,我们会按预期获得200 OK响应,但使用旧文本。
Nginx 中是否有可以解释这种行为的内部缓存机制?或者我们应该添加一些配置?

作为旁注,这是修改文件时 Nginx 返回的标头(似乎是正确的):

Accept-Ranges:bytes
Cache-Control:max-age=0
private
Connection:keep-alive
Content-Length:309
Content-Type:text/css
Date:Fri, 13 May 2011 14:13:13 GMT
Expires:Fri, 13 May 2011 14:13:13 GMT
Last-Modified:Fri, 13 May 2011 14:13:05 GMT
Server:nginx/0.8.54
Run Code Online (Sandbox Code Playgroud)

编辑
在使用expires指令和Cache-Control …

nginx virtualbox cache static-content

93
推荐指数
2
解决办法
10万
查看次数

如何清除 Chrome 的 SSL 缓存?

我有一个 HAProxy / stunnel 服务器,可以为我们在 AWS 上的站点处理 SSL。在测试期间,我在这台服务器上创建了一个自签名证书,并使用 Chrome 从我的桌面点击它来测试 stunnel 是否正常工作。

现在我已经在该服务器上安装了合法证书。当我在 Chrome 中从我的机器访问该站点时,它会引发以下错误:

错误 113 (net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH):未知错误。

我的猜测是 Chrome 缓存了自签名证书的密钥,它与合法证书的密钥不匹配。该站点适用于我机器上的所有其他浏览器,因此这只是 Chrome 的问题。

一个有趣的注意事项:从隐身会话 ( Ctrl+ Shift+ N) 中点击页面时,它可以正常工作。所以它显然是某种缓存的东西。

我做了我能想到的所有事情(转储我的缓存,从“管理证书”对话框的“个人和其他人”页面中删除证书,Ctrl+F5等)。

我的机器是 Windows 7 x64。Chrome 版本:12.0.742.91。

在 Google Chrome 帮助表单上,有关于听起来像是同一个问题的描述;然而,没有找到解决办法。


更新:今天似乎已经“自我修复”了。我讨厌这样的问题。我仍然不知道是什么导致了它或它是如何自行解决的。大概是缓存的证书过期了或者什么的,但我仍然有兴趣知道这些信息的存储位置以及如何验证它。

ssl cache chrome

89
推荐指数
4
解决办法
32万
查看次数

为什么要在 Linux 中删除缓存?

在我们的服务器中,我们习惯于在午夜丢弃缓存。

sync; echo 3 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,它似乎释放了大量 RAM,但我真的需要这样做吗?空闲内存不是浪费吗?

linux memory cache

89
推荐指数
6
解决办法
6万
查看次数

将 Linux 上的文件缓存/预加载到 RAM 中

我有一个相当旧的服务器,它有 4GB 的 RAM,它几乎整天都在提供相同的文件,但它是从硬盘驱动器这样做的,而 3GB 的 RAM 是“免费的”。

任何曾经尝试过运行 ram 驱动器的人都可以见证它在速度方面非常棒。这个系统的内存使用量通常不会超过 1GB/4GB,所以我想知道是否有办法使用额外的内存来做一些好的事情。

  • 是否可以告诉文件系统始终从 RAM 中提供某些文件?
  • 有没有其他方法可以通过使用 RAM 来提高文件读取能力?

更具体地说,我不是在这里寻找“黑客”。我希望文件系统调用从 RAM 提供文件,而无需创建 ram 驱动器并手动复制文件。或者至少是一个为我做这件事的脚本。

这里可能的应用是:

  • 带有大量读取的静态文件的 Web 服务器
  • 具有大型库的应用服务器
  • 具有过多 RAM 的台式计算机

有任何想法吗?

编辑:

  • 发现这个信息量很大:Linux Page Cache and pdflush
  • 正如 Zan 指出的那样,内存实际上并不是空闲的。我的意思是它没有被应用程序使用,我想控制应该在内存中缓存的内容。

linux cache virtual-memory

84
推荐指数
6
解决办法
8万
查看次数

应该使用哪种 PHP(操作码)缓存,为什么?

我一直听说一些 PHP(操作码)缓存,如 APC、XCache、Memcache、eAccelerator 等。

但我无法弄清楚如何去选择一个。除了缓存系统应该提供的性能优势之外,还应该关注哪些其他因素。

比如为什么你会说X缓存系统比Y好?我不太担心相对性能提升。任何两个系统之间的微小差异都不重要。

如果对我的问题不可能有一个通用的答案,这里有一些提示。我使用带有 Mediatemple 的专用 VPS(具有 root 访问权限)。RAM 为 512 MB(物理)+ 400MB(交换)我担心 WordPress 及其表亲 WordPress-MU 和 BuddyPress。我们 90% 的代码/网站都属于 WordPress 家族。

在此先感谢您的帮助。

php performance cache wordpress memcached

43
推荐指数
4
解决办法
4万
查看次数

如何从 SQL Server 查询缓存中删除特定的错误计划?

我们有一个特定的 SQL Server 2008 查询(不是存储过程,而是相同的 SQL 字符串——每 5 分钟执行一次),它间歇性地缓存一个非常糟糕的查询计划。

这个查询通常在几毫秒内运行,但是这个糟糕的查询计划需要 30+ 秒。

如何从 SQL Server 2008 中手术删除一个错误的缓存查询计划,而不破坏生产数据库服务器上的整个查询缓存?

cache query sql-server sql-server-2008

38
推荐指数
2
解决办法
5万
查看次数

来自具有 S3 源的 AWS CloudFront 的文件没有缓存控制标头

我们刚刚迁移到亚马逊 AWS。我们目前有一个运行良好的 EC2 实例。它在前端运行 Nginx,在后端运行 Apache。这也运行良好。所有站点都已正确启动,并包含从 EC2 提供的文件的 Cache-Control 标头。

问题在于我们放置在Amazon S3中的所有静态文件都是通过CloudFront CDN访问的。我们可以正常访问文件(并且 CORS 没有问题),但显然CloudFront 不提供带有 Cache-Control 标头的文件。我们想利用浏览器缓存。

在我看来,EC2 实例在这里不起作用,因为静态文件由 S3+CloudFront 直接提供,请求不会转到 EC2 中的 Web 服务器。

我完全迷失了。

问题:1)在这种情况下如何设置Cache-Control?2)是否可以设置Cache-Control?从 S3 还是 CloudFront?

注意:我在 Google 中找到了几个页面,您可以在其中为单个对象设置 S3 中的 Header。这真的不是一种特别有效的方法,因为在我的情况下,我们正在谈论几个对象。

谢谢!

cache amazon-s3 cdn amazon-cloudfront amazon-web-services

32
推荐指数
1
解决办法
3万
查看次数

https 流量对 Web 缓存代理服务器有什么影响?

我刚修了两门关于计算机安全和互联网编程的大学课程。前几天我在想这个:

网络缓存代理服务器缓存来自网络服务器的流行内容。这很有用,例如,如果您的公司内部有 1 Gbps 网络连接(包括 Web 缓存代理服务器),但只有 100 Mbps 的 Internet 连接。Web 缓存代理服务器可以更快地为本地网络上的其他计算机提供缓存内容。

现在考虑 TLS 加密连接。可以以任何有用的方式缓存加密的内容吗?来自letsencrypt.org 的一项伟大举措旨在默认通过 SSL 加密所有互联网流量。他们通过让为您的网站获取 SSL 证书变得非常简单、自动化和免费(从 2015 年夏季开始)来实现这一目标。考虑到 SSL 证书的当前年度成本,免费真的很有吸引力。

我的问题是:HTTPS 流量最终会使 Web 缓存代理服务器过时吗?如果是这样,这将对全球互联网流量的负载造成什么影响?

proxy https cache tls

29
推荐指数
1
解决办法
1万
查看次数

如何禁用 tomcat 缓存?我有奇怪的静态文件问题

如何防止tomcat缓存?我有通过 ajax 加载和使用的 css 和基本 html 文件,除非我重新启动 tomcat,否则这些更改似乎没有反映。不同的机器,不同的浏览器,我没有收到更新的文件。

想法?

tomcat web-server cache

26
推荐指数
3
解决办法
13万
查看次数