如何将子域指向不同的本地 IP

tha*_*hoc 5 reverse-proxy subdomain apache-2.2 ubuntu-12.04

我的问题与How to point a subdomain to local server with dynamic IP 相同。不同之处在于我确实有来自 ISP 的静态 IP,我认为我不需要使用 DynDNS,对吗?那我可以用什么代替呢?

我的目标是将每个子域指向不同的 Web 服务器,如下所示:
mydomain.com --> 192.168.1.100(主 Web 服务器)
sub1.mydomain.com --> 192.168.1.101(Web 服务器 1)
sub2.mydomain.com - -> 192.168.1.102(网络服务器 2)

我曾尝试按照此处的说明使用 Apache 的代理模块,但未成功。当我通过浏览器访问 sub1.mydomain.com 时,它总是导致 mydomain.com。
我可以通过这种方法做到这一点吗?如果没有,请告诉我另一种方式。

我使用 Ubuntu 服务器 12.04

[已解决]
解决方案

  1. 设置 DNS

A记录指向公网IP:
1@public.ip 2www
public.ip

CNAME记录指向子域:
1 sub1 mydomain.com
2 sub2 mydomain.com

  1. 设置阿帕奇。

添加sub1sub2/etc/apache2/sites-available

子1:

<VirtualHost *:80>    
        ServerName sub1.mydomain.com    
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>    
        <Location />
                ProxyPass http://192.168.1.101/
                ProxyPassReverse http://192.168.1.101/
        </Location>    
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

子2:

<VirtualHost *:80>    
        ServerName sub2.mydomain.com    
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>    
        <Location />
                ProxyPass http://192.168.1.102/
                ProxyPassReverse http://192.168.1.102/
        </Location>    
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Jos*_*shP 1

我最近刚刚做了这个。看我的问题。这是一个漫长的来回,但我最终还是把它设置好了。

  • 设置 DNS。A记录将指向您的公共IP。因此,yourdomain.com 指向 your.pub.ip.add。为子域添加 CNAME 记录。因此, sub1.yourdomain.com 指向@, sub2.yourdomain.com 指向@,等等。尽管子域都指向同一地址,但浏览器会向网络服务器授予您要访问的子域。

  • 设置阿帕奇。您需要为每个子域(也可能为主域)设置虚拟主机。您可以在不同的位置定义虚拟主机...我的虚拟主机在 中定义/etc/apache2/sites-available,并包含<Location>指令,您将在其中设置反向代理。