问题标签 [mod-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
158 浏览

python - 缓存匿名 HTTP 请求(基于 cookie)

我想为我的 Python Web 应用程序添加一个 HTTP(或 WSGI)缓存,用于所有请求

  • 要么是GET要么HEAD
  • 没有调用 cookie "session_id"(已知用户获得专门的、不可缓存的页面)
  • 没有调用 cookie "_flash"(此 cookie 用于向用户显示一些短消息,例如“文章创建成功”,即使在重定向之后)
  • 如果有以"__utm"(由 Google Analytics 创建)开头的 cookie,则应忽略它们(不存储在缓存中),但仍应缓存该站点

如果考虑到其他常见的缓存指令(如cache-control: private)甚至 ETAGS 也会很好,但目前这不是必需的。

最好,我不想运行任何额外的软件,比如 Squid(但如果有充分的理由我会使用它),所以我更喜欢mod_apache基于解决方案,甚至是某种memcached强大的 WSGI-Middleware;也欢迎其他解决方案。

非常感谢,
克里斯托夫

0 投票
1 回答
930 浏览

django - Apache 无法正确识别 mod_wsgi 中添加的标头?

我有一个 django 应用程序,它使用 SessionMiddleware 在 Apache 的 mod_wsgi 守护程序模式下运行。我的 Apache 配置还包含标准的 mod_deflate 配置和 mod_cache/mod_disk_cache 以提高性能。

我的问题是 django 的 SessionMiddleware 设置的 Vary: Cookie 没有被 mod_cache 正确识别,尽管请求 cookie 不同,但它正在提供页面的缓存版本。删除 mod_deflate 可以解决问题。Setting Vary: Apache中的Cookie与 mod_headers (不管 django 中间件)也解决了这个问题(这是我的临时解决方法)。

我注意到,在玩这个的时候,似乎在某些情况下,mod_wsgi 应用程序中设置的标头没有被之后的一些 Apache 模块正确识别,这对任何人来说意味着什么吗?

我有非常标准的 wsgi(附加)和 Apache 配置,如果有任何其他数据可以提供帮助,请告诉我。我正在运行股票 ubuntu natty libapache2-mod-wsgi 3.3-2ubuntu2、Apache 2.2.17、django 1.3

0 投票
0 回答
454 浏览

apache - Apache mod_rewrite 为不同的 url 提供相同的内容

我有一个奇怪的问题,我无法找到答案。我已经用 mod_disk_cache 设置了 apache2 服务器。我有奇怪的问题,我为不同的 URL 获得相同的页面。假设我通过主页访问页面 - 它工作正常。如果我从主页转到文章,我可以看到文章 - 工作正常。返回主页 - 工作正常。从主页到其他文章 - 问题:我还有主页的内容。

我是我的开发服务器,一切正常。在生产服务器上,我遇到了这些问题。

一些细节:

开发服务器:Windows 7 apache 2.2.17 php:5.3.4

生产服务器:centOS apache 2.2.3 php:5.2.9

HTTPD配置文件

MOD_REWRITE 配置

好吧,我希望有人能够帮助或至少为我指出一些好的文档。顺便说一句:是的,我阅读了所有 apache 文档!

问候!

0 投票
0 回答
288 浏览

apache - Caching dynamic content from Tomcat through Apache

I would like to cache dynamic content coming from Tomcat. However, the lifespan of the content is pretty short (max 15 minutes) before an update is needed. Would this be possible using something like mod_cache?

0 投票
1 回答
753 浏览

apache - WebSphere Portal - 无法在 IHS 中关闭内存缓存

我们将使用 WebSphere Portal 解决方案推出一个全新的公共站点,采用这种废话的全部动机是 WCM 附带的 WYSIWYG 编辑功能,用于非 IT 部门的内容创作。部门负责人喜欢!

但这给我们带来了无尽的噩梦,主要是因为所有东西,OS、WAS、WPS/WCM 和 IHS 都被挤在一个盒子里!!!。

长话短说,我们现在正在解决性能问题等问题。

我们尝试开启磁盘缓存但后来发现mem缓存也开启了,看了最新的Portal Performance Tuning Guide v1.2说两者不能同时开启,所以我们尝试开启mem通过注释掉整个块来关闭缓存<IfModule mod_mem_cache.c>,但结果是磁盘缓存也被完全关闭。

这是 httpd.conf 的片段:

我怎样才能只启用磁盘缓存?

任何帮助表示赞赏。

0 投票
1 回答
1498 浏览

apache - mod_cache + ETag:Apache 不向客户端回复 304

我对 mod_cache 和 ETags 有疑问。这是我的场景:

环境:Firefox、Apache 2.2.22(Mac OSX 默认)、任何 Web App,Apache 是 Web App 的代理

初始状态:

  • 浏览器有一个(过期的)doc /aaa 缓存版本,ETag=123
  • Apache 有一个(过期的)缓存版本的 doc /aaa,ETag=123

设想:

  • 浏览器请求 /aaa, If-None-Match: 123
  • Apache 请求 /aaa, If-none-Match: 123 from Web App
  • Web 应用返回 304
  • Apache 将他的缓存版本返回给浏览器 (200)

Apache 不应该向浏览器返回 304 吗?

附加信息:

  • 如果Apache没有缓存版本的/aaa,他将ETag转发给Web App,得到304,返回304给浏览器
  • 使用 Last-Modified/If-Modified-Since 而不是 ETags 工作(从 Web 应用程序获取 304 后,Apache 将 304 返回到浏览器)

一个更简单的场景:

  • Apache 版本未过期 (ETag: 123) - 他不需要从 Web App 获得刷新
  • 获取 /aaa,如果没有匹配:123
  • 响应:200(而不是 304?)

阿帕奇会议

请求/响应标头:

0 投票
2 回答
294 浏览

apache - Plone 需要很长时间才能响应字节范围请求

我们在 haproxy 负载均衡器后面有两个最近升级的 Plone 4.3.2 实例,它本身就在 Apache 后面。

我们将每个 Plone 实例限制为使用 haproxy 配置服务两个并发请求。

我们最近遇到了一个问题,客户端快速连续发送 4 个字节范围的 PDF 请求,每个请求需要 6 到 8 分钟才能得到响应。这会将所有可用请求锁定 6 分钟,因此 haproxy 会超时队列中的其他请求。PDF 存储在 Plone 中的一个 ATFile 对象,我认为在我们最近的升级中应该已将其迁移到 blob 存储。

我的问题是我们应该采取哪些措施来防止将来发生类似情况?

我也有兴趣:

  • 如何调试为什么负载较轻的服务器上的字节范围请求需要这么长时间才能响应
  • plone.app.blob 如何处理字节范围请求
  • 是否可以将 Apache 配置为从其缓存而不是后端服务器提供字节范围请求

按照这里的要求,去掉了多余配置的 haproxy.cfg。

0 投票
0 回答
435 浏览

apache - apache mod_cache 存储但不使用“传输编码:分块”提供 url

我在 Debian Wheezy 中使用 django 和 mod_wsgi 设置了 apache2。我用这个配置启用了 mod_mem_cache:

基于 MCacheMaxStreamingBuffer 是文档中所述的 100000 或 MCacheMaxObjectSize 中较小的一个。

当我尝试点击大小为 3.3KB 的页面时,我在 firebug 中得到这些响应标头:

并且页面不是从缓存中提供的。然而,在页面源中有正确的标题“缓存控制:max-age=300,必须重新验证”,但没有出现在萤火虫中。在 apache 日志中,我只能正确看到:

对于我在 django 之外创建的另一个没有将分块编码作为标头的测试页面,缓存可以正常工作。为什么页面没有从缓存中提供?有没有人见过类似的东西?

0 投票
1 回答
44 浏览

image - 使用 apache deflate 和 mem_cache 丢失图像质量

我在 Debian 7 下运行我的网站,启用了以下 apache 模块:mem_cache、cache、deflate 但问题是,所有图像都失去了质量!当我检查我的物理文件时,质量是完美的。我禁用了所有这三个模块,但问题仍然存在!请问我怎样才能得到我的初始质量?谢谢

0 投票
0 回答
49 浏览

apache - 使用 Apache 作为来自第三方服务器的图像的缓存服务器

我希望将 Apache 作为静态图像的缓存服务器运行。如果请求的图像在服务器本地丢失,服务器应在响应请求之前从第三方服务器下载并存储在本地。

因此,当客户端发送请求 http://myserver/static/images/image1.jpg 并且图像在本地丢失(即 /var/www/static/images/image1.jpg 丢失)服务器

  1. 从另一台服务器下载图像 http://third-partserver/static/images/image1.jpg
  2. 将其存储在本地/var/www/static/images/image1.jpg
  3. 将图像返回给客户端

有没有什么方法可以通过仅使用现有的 Apache 模块和配置而不编写任何特定代码来实现?