通过 Apache 将子域指向另一个 IP
Posted
技术标签:
【中文标题】通过 Apache 将子域指向另一个 IP【英文标题】:Pointing a subdomain to another IP via Apache 【发布时间】:2011-06-25 01:58:14 【问题描述】:是否可以仅使用 Apache 将子域指向特定 IP 地址?
我们目前有一个包含 250 多个子域(site1.example.com、site2.example.com 等)的主域 (www.example.com)。由于有关 SSL 证书的规则,我们现在必须将 www.example.com 放在它自己的 IP 地址上(尽管它仍然驻留在同一台服务器上)。
子域当前配置为别名记录,因此为每个子域创建 250 多个新的 A 记录将是一个很大的麻烦。
我希望有一个基于 Apache 的解决方案来解决这个问题,这样我就不必在剩下的时间里配置 DNS 记录了。
【问题讨论】:
我已投票决定将其移至 serverfault.com,因为我认为这会更合适。如果其他人同意,它将(可能)自动移动。 谢谢,我是 StackExchange 网络的新手,不知道 serverfault.com 的存在。 【参考方案1】:您可以让mod_proxy 将所有请求从一个虚拟主机传递到另一台服务器,这听起来正是您正在寻找的。p>
<VirtualHost *:80>
ServerAdmin you@your.com
ServerName your.vhost.your.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyErrorOverride On
ProxyPass / http://your.realhost.com/
ProxyPassReverse / http://your.realhost.com/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
您也可以使用 mod_rewrite 和 [P] 选项来执行此操作,这可以为您提供更多的灵活性。
【讨论】:
谢谢,我会用它做一点测试,如果它满足我的需求,我会回来奖励你的答案。 不确定这对 SSL 的效果如何——至少,您还需要设置*:443
和 https:
;我不确定在代理的情况下将使用哪个 SSL 证书。
暴露的 SSL 证书将是使用 mod_proxy 的服务器之一。假设它是通配符证书或获得证书中列出的所有域,它将正常工作。您实际上也必须使用 SSL 从代理到真实服务器。
@awoodland:我环顾四周玩了一下,有点困惑。我只是想确保我正确理解了这个概念。 your.vhost.your.com
应该是 site1.example.com
。 http://your.realhost.com
应该是 www.example.com
。对吗?
假设我已经正确理解了您的问题,realhost 是您真正想要为请求提供服务的服务器的 IP 或 DNS 名称,而 your.vhost.your.com 是DNS 别名以上是关于通过 Apache 将子域指向另一个 IP的主要内容,如果未能解决你的问题,请参考以下文章