![Apache 2-将特定域中的所有请求转发到内联网中的其他服务器](https://linux22.com/image/606635/Apache%202-%E5%B0%86%E7%89%B9%E5%AE%9A%E5%9F%9F%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E8%AF%B7%E6%B1%82%E8%BD%AC%E5%8F%91%E5%88%B0%E5%86%85%E8%81%94%E7%BD%91%E4%B8%AD%E7%9A%84%E5%85%B6%E4%BB%96%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我有两台服务器:
- A (
192.168.1.100:80
) - 乙(
192.168.1.200:8080
)
两者都位于防火墙后面,并且仅端口 80 开放并转发至服务器 A。
外部人员输入以下内容www.mydomain.com
来访问我的网络服务器 A。
现在我希望所有的 HTTP 都subdomain.mydomain.com
转到服务器 B。
答案1
您可以使用mod_proxy去做这个。
您在 A 上为 subdomain.mydomain.com 设置一个主机条目以指向 B,并设置 B 来为该域提供服务。然后在 A 上为 subdomain.mydomain.com 设置一个虚拟主机。此虚拟主机将反向代理 / 到 B。
ProxyPass / http://subdomain.mydomain.com/
ProxyPassReverse / http://subdomain.mydomain.com/
答案2
为了实现这一点,您将需要两个虚拟主机并启用 mod_proxy。
在启用站点的情况下,您将需要一个包含以下内容的文件(以及您想要的任何其他配置):
<VirtualHost *:80>
ServerName www.mydomain.com
... whatever you want to serve
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.mydomain.com
ProxyPass / http://subdomain.mydomain.com/
ProxyPassReverse / http://subdomain.mydomain.com/
</VirtualHost>