Apache-2.2
如何將子域指向不同的本地 IP
我的問題與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 $$
解決方案
- 設置 DNS
A記錄指向公共IP:
2 www public.ip*
CNAME記錄指向子域:
*1 sub1 mydomain.com
2 sub2 mydomain.com*
- 設置阿帕奇。
添加
sub1
和sub2
到/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>
指令,您將在其中設置反向代理。