Apache-2.2

沒有 DNS 的基於名稱的 Apache 虛擬伺服器

  • February 17, 2012

我在本地 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!)。這是一個特定主機的問題。

虛擬主機在以下文件中配置:extra/httpd-vhosts.conf

這是有關如何配置虛擬主機的範例

<VirtualHost *:80>
ServerAdmin webmaster@website.com
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 管理器上配置您的 Normal 和 Aliasses 名稱,並記住將此文件包含在 httpd.conf 主指令中。

包括 conf/extra/httpd-vhosts.conf

引用自:https://serverfault.com/questions/360966