如何用vhostsconfigurationApache和Tomcat?

我有一个静态的公共IP地址的服务器。 我也有一个注册的域名。

为了说明,让我们假设他们是

  • IP地址: 12.34.56.78
  • 域名: example.com

我有一台机器运行以下内容:

  1. 一个网站(在IIS7上)在localhost:80可用localhost:80
  2. JetBrains TeamCity实例(通过Tomcat)在localhost:1234本地可用
  3. 一个VisualSVN服务器实例(通过Apache)在localhost:5678/svn可用localhost:5678/svn

我为example.com和以下CNAMEloggingbuild立了一个Alogging:

  • www.example.com
  • builds.example.com
  • sources.example.com

我想configurationTomcat和Apache,使:

  • 如果我将浏览器指向builds.example.com ,那么最终会出现在JetBrains TeamCity实例中,
  • 如果我将我的浏览器指向sources.example.com ,那么我最终将在VisualSVN Server实例上运行。

我想我可以将Apacheconfiguration为vhost example.com:5678/svn指向sources.example.com ,并将以下行添加到Apache httpd.conf文件

 Listen 5678 NameVirtualHost *:5678 <VistualHost *:5678> ServerName sources.example.com DocumentRoot /svn </virtualHost> 

这打破了VisualSVN的实例,所以我不得不恢复到

 Listen 5678 

帮帮我!

您可以使用Apache服务器作为代理,盲目地将请求转发到网站。 要configurationApache服务器充当代理,你需要在configuration文件中这样的东西:

 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so <Proxy *> Order deny,allow Allow from 127.0.0.1 </Proxy> NameVirtualHost 0.0.0.0:80 <VirtualHost 0.0.0.0:80> ServerName sources.example.com ProxyPass / http://localhost:5678/svn/ ProxyPassReverse / http://localhost:5678/svn/ </VirtualHost>