在Apache别名或映射端口号上运行Tomcat到主机名

我已经在端口80上安装了Apache,并且在端口8080上安装了Tomcat。所以,我从localhost/localhost/访问我的php项目localhost:8080/我可以安装或映射Tomcat到更好的地址,比如localhost/java/javahost而不是localhost这样的javahost我已经添加了一行到HOSTS文件

 127.0.0.1:8080 javahost 

但是这不起作用。 而我无法ping到javahost。 我想它不应该这样工作。

有出路吗?

WAMPSERVER 2与APACHE 2.2.11

TOMCAT 6.0.29

WINDOWS XP PRO SP3

更新:

感谢@bindbn

我改变了主机文件

 127.0.0.1 javahost 

我在Apache中启用代理模块然后将其添加到httpd.conf的末尾

 <VirtualHost javahost> ProxyPreserveHost On ProxyPass / http://localhost:8080 ProxyPassReverse / http://localhost:8080 </VirtualHost> 

从一起使用Virtualhost&mod_proxy

之后的javahost也加载了PHP网站托pipe在端口80而不是localhost:8080网站。

更新在interwebs上find这个http:// confluence.atlassian.com/display/CONF30/Using+Apache+with+mod_proxy

 # Put this in the main section of your configuration (or desired virtual host, if using Apache virtual hosts) ProxyRequests Off ProxyPreserveHost On #<Proxy *>// changed to below. <Proxy javahost:80> Order deny,allow Allow from all </Proxy> ProxyPass /confluence http://localhost:8080/confluence ProxyPassReverse /confluence http://localhost:8080/confluence <Location /confluence> Order allow,deny Allow from all </Location> 

将confluence改为java(并将localhost:8080 / confluence更改为localhost:8080)给了我@lladnar的答案,它可以很好地将localhost / java和javahost / javaredirect到localhost:8080,但是这不能用于redirect只有javahost到本地主机:8080,并保持localhost读取端口80? 我也改变了路线,

 <Proxy javahost:80> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ 

现在javahostredirect到localhost:8080,但localhost也redirect到localhost:8080,所以我不能访问我的PHP网站的localhost:80端口。

我哪里错了? 有任何想法吗?

我的目标是将javahost(或不同的IP)redirect到localhost:8080,保持本地主机:80从本地主机和127.0.0.1访问和我的个人电脑的内部网IP

用答复更新这工作。 我将其添加到httpd.conf的末尾。 代理模块和代理http模块都打开。 我的工作站有一个局域网IP(192.168.1.4)。 我添加了另一个IP(192.168.1.5),并使用该IP而不是javahost name.Now 192.68.1.5打开我的Tomcat网站和192.168.1.4打开我的PHP网站。

 <VirtualHost 192.168.1.5> ProxyPreserveHost On ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </VirtualHost> 

多亏了@Caleb多个IP的想法。 感谢代码中的@lladnar和@bindbn! (我希望我可以分解答案,因为我没有代表(代表6),我不能给任何代表)

当前设置的问题目前,Intranet上的人员使用http:// workstationname /来访问Intranet PHP网站。 他们现在必须使用ips的JAVA和PHP网站。 有没有办法将一个特定的主机名绑定到一个特定的IP地址

您的主机文件是用于地址查找,而不是强制路由到特定的端口。

你没有在这里指定你的平台,所以这些是一般可能的解决scheme:

  1. 将第二个IP地址添加到您的计算机并将apache绑定到另一个,将tomcat绑定到另一个。 然后你可以使用主机来指定哪一个是哪个。
  2. 在apache中设置一个别名来转发到另一个URL。
  3. 在apache中设置你的虚拟主机,以便它识别不同的名字(你在你的主机文件中设置的),并且转发或者代理请求到tomcat,如果它们是另一个主机的话。

编辑(删除:8080)

 127.0.0.1 javahost 

在Apache虚拟主机javahost中添加

 ProxyPass / http://localhost:8080 ProxyPassReverse / http://localhost:8080 

在你目前的问题中:

<VirtualHost javahost>更改为<VirtualHost *:80>以便它只侦听所有接口上的端口80。 如果只希望从本地机器访问站点,可以用localhostreplace星号。

然后,将proxypass和proxypassreverse更改为:

 ProxyPass /java http://localhost:8080 ProxyPassReverse /java http://localhost:8080 

那么当您在浏览器中访问它时, http:// localhost / java应该自动被代理到Tomcat。