Apache-2.2

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

  • May 10, 2016

我的問題與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 server 1)

sub2.mydomain.com - -> 192.168.1.102(網路伺服器 2)

我曾嘗試使用 Apache 的代理模組,按照此處的說明進行操作,但沒有成功。當我通過瀏覽器訪問 sub1.mydomain.com 時,它總是指向 mydomain.com。

我可以通過這種方法做到這一點嗎?如果不是,請告訴我另一種方式。

我使用 Ubuntu 伺服器 12.04

$$ SOLVED $$

解決方案

  1. 設置 DNS

A記錄指向公共IP:

*1@public.ip

2 www 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>

子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>

我最近才這樣做。看我的問題。來回有點長,但我最終還是把它設置好了。

  • 設置 DNS。A 記錄將指向您的公共 IP。因此,yourdomain.com 指向 your.pub.ip.add。為子域添加 CNAME 記錄。因此,sub1.yourdomain.com 指向@,而 sub2.yourdomain.com 指向@,等等。雖然子域都指向同一個地址,但瀏覽器會向網路伺服器提供您要訪問的子域。
  • 設置阿帕奇。您需要為每個子域(也可能為主域)設置虛擬主機。您可以在不同的地方定義虛擬主機…我的定義在 中/etc/apache2/sites-available,並包含<Location>指令,您將在其中設置反向代理。

引用自:https://serverfault.com/questions/415780