
這可能是個愚蠢的問題,但我很累,找不到解決方案。
我目前有一個在 Ubuntu 10.4 上運行的 Apache Web 伺服器,並且我使用 DynDNS 服務使外部世界可以透過網域和/或子網域存取它們。
我的配置目前如下:
<VirtualHost *:80>
ServerAdmin <obscured>@<obscured>.com
ServerName <subdomain>.<obscured>.com
ServerAlias <subdomain>
DocumentRoot /<obscured>/<subdomain>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /<obscured>/<subdomain>>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
Allow From All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.$host.log
CustomLog ${APACHE_LOG_DIR}/access.$host.log combined
</VirtualHost>
這在網路外部存取時效果很好,並且所有子網域都解析到正確的目錄。
我遇到的問題是透過內部網路存取子網域。
我可以使用伺服器的IP位址存取Web伺服器:http://192.168.1.123/
但這總是將我帶到同一個虛擬主機,我不知道如何區分不同的虛擬主機(不同的子網域)。
理想情況下,我想使用與附加到外部網域的子網域相同的http://<subdomain>/
where來存取相同的子網域。<subdomain>
有任何想法嗎?
答案1
正如您所發現的,如果您使用伺服器的 IP 位址,您將被帶到清單中的第一個虛擬實例。
我只是將使用虛擬伺服器名稱的條目新增至本機主機檔案。
某些 xDSL 路由器(例如:Draytek 的)將允許您使用指向本機 LAN 上託管的網站的 URL - 這稱為 DNS 環回 - 因此另一個「修復」是更改路由器。對於企業來說,這可能是個可行的選擇,因為管理解決方案比更新所有本機主機檔案更容易。
答案2
確保主機名稱解析為預期的 IP 位址,並且 Apache 實際上正在偵聽該 IP。