如何在 Apache 中访问内部网络虚拟主机?

如何在 Apache 中访问内部网络虚拟主机?

这可能是一个愚蠢的问题,但我很累,找不到解决方案。

我目前有一个在 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。

相关内容