这可能是一个愚蠢的问题,但我很累,找不到解决方案。
我目前有一个在 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>/
访问相同的子域。<subdomain>
有任何想法吗?
答案1
正如您所发现的,如果您使用服务器的 IP 地址,您将被带到列表中的第一个虚拟实例。
我只需向本地主机文件添加使用虚拟服务器名称的条目即可。
一些 xDSL 路由器(例如:Draytek 的)将允许您使用指向本地 LAN 上托管的站点的 URL - 这称为 DNS 环回 - 因此另一个“修复”方法是更换路由器。对于企业来说,这可能是一个可行的选择,因为它比更新所有本地主机文件更容易管理。
答案2
确保主机名解析为预期的 IP 地址,并且 Apache 实际上正在监听该 IP。