相关疑难解决方法(0)

Apache + Tomcat:使用mod_proxy而不是AJP

有没有办法使用HTTP代理将Apache连接到Tomcat,以便Tomcat获取正确的传入主机名而不是localhost?我在apache中使用此指令:

ProxyPass /path http://localhost:8080/path
Run Code Online (Sandbox Code Playgroud)

但它来自localhost,当我们在同一台服务器上有一堆站点时,这是无用的.我可以在服务器配置中手动设置主机:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           proxyName="pretend.host" proxyPort="80" />
Run Code Online (Sandbox Code Playgroud)

但这再次不会提供多个站点.而且我不喜欢为每个站点使用不同的内部端口,听起来真的很难看.

我代理它时是否无法转移端口?

(如果你问为什么我不只是使用AJP,答案就是这个错误.我在尝试完全放弃Tomcat和Apache之前我正在尽我所能)

apache tomcat mod-proxy ajp

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

从Tomcat切换到Glassfish

为了响应错误传递页面的错误,我们正在考虑从Apache + Tomcat切换到Glassfish.这不是受到功能的启发,而是受到一种不会消失的故障的挫败感.

问题是:

  • 我们应该使用Glassfish与Apache合作,还是完全取代Apache?Apache和Tomcat之间的接口显然与我们看到的错误有关,我们最不需要的是再次出现同样的问题.另一方面,我们需要PHP,Apache已经设置好处理.

  • 我们应该使用Glassfish 2还是3?版本3似乎是一个完全重写,这里和其他地方的评论表明很多人都坚持2.

  • Apache和Glassfish在同一台服务器上的合作能力如何?例如,Apache可以简单地将ProxyPass所有域的所有请求转移到Glassfish(而不是现在正在执行的更具体的Tomcat代理).

  • 有没有更简单的方法?我讨厌无所事事地完成所有这些工作.

  • 这个问题是否属于serverfault.com?

apache tomcat glassfish

4
推荐指数
1
解决办法
3124
查看次数

使用ProxyPass页面而不是图像

由于可怕的,可怕的错误,我们改变了将Apache连接到Tomcat的方式.我们用的是mod_jk:

JkMount /path ajp13
Run Code Online (Sandbox Code Playgroud)

现在我们正在使用mod_proxy_ajp:

ProxyPass /path ajp://localhost:8009/path
ProxyPassReverse /path ajp://localhost:8009/path
Run Code Online (Sandbox Code Playgroud)

但是,有一个功能JkMount提供但ProxyPass不提供:选择文件类型的能力.这使得代理html文件成为可能,但不能代理图像 - 换句话说,让好的快速Apache服务于静态的东西,并仅仅为动态的东西使用缓慢的Tomcat.

JkMount /*.html ajp13
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这一目标ProxyPass?可能使用周围的<Location>指令或类似的东西?

apache proxy ajp mod-jk proxypass

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

标签 统计

apache ×3

ajp ×2

tomcat ×2

glassfish ×1

mod-jk ×1

mod-proxy ×1

proxy ×1

proxypass ×1