无需 DNS 的基于 Apache 名称的虚拟服务器

无需 DNS 的基于 Apache 名称的虚拟服务器

我在本地 Windows 7 x64 计算机上安装了 Apache Web 服务器。它没有全局 DNS 名称。

在默认分布中,它在 Apache/conf/extra/httpd-vhosts.conf 文件中配置了虚拟主机。

它有一个指令

NameVirtualHost *:80

和多个指令

<VirtualHost *:80>

与不同的

ServerName www.domain.tld

文件中写了不同的名称hosts并且都指向127.0.0.1

不幸的是,虚拟主机不起作用。只有第一个<VirtualHost>标签似乎处于活动状态。httpd.exe启动时和 中没有显示任何内容error.log

如何使虚拟主机在这里工作?

编辑

我看不出为什么需要 DNS。GET请求包含站点的符号名称,因此,服务器拥有所有信息来区分调用了哪个虚拟主机。

编辑1

我发现虚拟主机确实可以工作(没有 DNS!)。这是某台特定主机的问题。

答案1

虚拟主机在以下文件中配置:extra/httpd-vhosts.conf

以下是如何配置虚拟主机的示例

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/sites/website"
<Directory "/var/sites/website">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny   
    Allow from all
</Directory>

ServerName www.website.com
#ServerAlias www1.website.com
ErrorLog "logs/error_log"
CustomLog "logs/access_log" common
</VirtualHost>

记得 :

在您的 DNS 管理器上配置您的常规名称和别名,并记得将此文件包含在 httpd.conf 主指令中。

包括 conf/extra/httpd-vhosts.conf

相关内容