对页面使用 ProxyPass,但对图像不使用
由于可怕的错误,我们改变了我们将 Apache 连接到 Tomcat。 我们曾经使用 mod_jk
:
JkMount /path ajp13
现在我们使用 mod_proxy_ajp
:
ProxyPass /path ajp://localhost:8009/path
ProxyPassReverse /path ajp://localhost:8009/path
但是,JkMount
提供了一个功能,但 ProxyPass
不:选择文件类型的能力。 这使得代理 html 文件成为可能,但不能代理图像 - 换句话说,让快速的 Apache 提供静态内容,而仅使用缓慢的 Tomcat 来提供动态内容。
JkMount /*.html ajp13
有没有办法用 ProxyPass 来实现这一点? 可能使用周围的
指令或类似的东西?
As a result of horrible, horrible errors, we've changed how we connect Apache to Tomcat. We were using mod_jk
:
JkMount /path ajp13
Now we're using mod_proxy_ajp
:
ProxyPass /path ajp://localhost:8009/path
ProxyPassReverse /path ajp://localhost:8009/path
However, there's a feature that JkMount
offered but ProxyPass
doesn't: the ability to select on file types. This made it possible to proxy html files, but not images - in other words, to let the nice fast Apache serve the static stuff, and resorting to the slow Tomcat only for the dynamic stuff.
JkMount /*.html ajp13
Is there any way of achieving this with ProxyPass
? Possibly using a surrounding <Location>
directive or something like that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用ProxyPassMatch:
编辑:Marcus Downing 的更正< /子>
Use ProxyPassMatch:
Edited: Marcus Downing’s correction
不是您的问题,而是使用此配置时需要注意的事项。 当使用 apache mod_proxy 连接到 tomcat 时,我的错误日志显示在中等负载下连接丢失。
将其添加到 httpd.conf 解决了我的问题。
Not your issue but something to watch out for using this configuration. While using apache mod_proxy to connect to tomcat my error log was showing dropped connections under moderate load.
Adding this to httpd.conf solved my problems.
kmkaplan 的帖子是正确的答案,但它给了我错误:
当我将指令更改为读取时,它起作用了:
我只能假设将
$1
放在端口号8009< 旁边/code> 令人困惑。
kmkaplan's post is the right answer, but it gave me the error:
It worked when I changed the directive to read:
I can only assume that putting the
$1
right next to the port number8009
was confusing it.我们使用以下内容让 Apache 提供图像并设置合理的过期标头:
但是,如您所见,我们将图像存储在 Tomcat 应用程序之外。 我不知道它是否也适用于应用程序内的图像。
We use the following to let Apache serve images and set reasonable expires headers:
However, as you can see, we store images outside of our Tomcat application. I don't know if it also works for images inside the application.