gpt4 book ai didi

apache - Tomcat mod_proxy AJP静态资源目录

转载 作者:行者123 更新时间:2023-11-28 21:52:13 32 4
gpt4 key购买 nike

我使用以下配置将 httpd 与 tomcat 结合使用:

ProxyPass / ajp://localhost:8009/MyProject
ProxyPassReverse / ajp://localhost:8009/MyProject

除了在 HTML 呈现时我的来自 tomcat 的图像链接不起作用外,这工作正常:

<img src="/MyProject/img/image.jpg"/>

如我所料:

  <img src="/img/image.jpg"/>

最佳答案

您的图像放置在 tomcat 中的路径/img/image.jpg 是上下文相对路径,对于您的 tomcat,绝对路径是/MyProject/img/image.jpg,尽管它是/img/image。 jpg 在 apache 之外。您代理了/->/MyProject,因此当您将上下文名称添加到路径“MyProject”时,它实际上并没有像您提到的那样工作。

解决方案 1:

在tomcat中使用上下文相对路径

img/image.jpg

在这种情况下,您必须小心请求的 URI,例如/MyProject/page1/action1/有它的图片相对路径

../../img/image.jsp

解决方案 2:

使用带有前导斜杠的文档根路径

/img/image.jpg

并使用文档根('href' 属性)定义元素 base。请注意链接!

<head>
<base href="http://www.mydomain.com/">
</head>

参见 http://www.w3schools.com/tags/tag_base.asp


解决方案 3:

将项目映射到 apache 中与 tomcat 中相同的 URI(我个人也使用此解决方案,因为它非常简单,并且我使用常用​​词作为项目/上下文名称,例如“网络”、“站点”等)。

ProxyPass /MyProject ajp://localhost:8009/MyProject

解决方案 4:

使用内容过滤器,例如 mod_proxy_html http://httpd.apache.org/docs/current/mod/mod_proxy_html.html

注意:这个解决方案总是有点慢(你使用的过滤器并不重要)!


注意代理配置!!!

这只是关于重定向等,但是您的ProxyPathReverse 配置错误!

ProxyPass / ajp://localhost:8009/MyProject
ProxyPassReverse /MyProject http://www.mydomain.com/

查看完整解释 http://www.humboldt.co.uk/the-mystery-of-proxypassreverse/#more-131

阅读配置示例 http://www.apachetutor.org/admin/reverseproxies

关于apache - Tomcat mod_proxy AJP静态资源目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20739980/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com