我有一台具有静态公共 IP 地址的服务器。我还有一个注册域名。
为了便于说明,我们假设它们
- IP地址:
12.34.56.78
- 域名:
example.com
我有一台机器,正在运行以下命令:
- 本地可访问的网站(通过 IIS7)
localhost:80
- 本地可用的 JetBrains TeamCity 实例(通过 Tomcat)
localhost:1234
- 本地可用的 VisualSVN 服务器实例(通过 Apache)位于
localhost:5678/svn
我为 example.com 设置了 A 记录以及以下 CNAME 记录:
www.example.com
builds.example.com
sources.example.com
我想配置 Tomcat 和 Apache 以便:
- 如果我将浏览器指向
builds.example.com
,我最终会进入 JetBrains TeamCity 实例,并且, - 如果我将浏览器指向
sources.example.com
,我最终会进入 VisualSVN 服务器实例。
我认为我可以将 Apache 配置为 vhostexample.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
帮助!
答案1
您可以使用 apache 服务器作为代理,盲目地将请求转发到站点。要将 apache 服务器配置为代理,您需要在配置文件中添加类似以下内容:
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>