Apache-2.2

如何添加虛擬主機來處理(工作)CNAME 的請求?

  • September 22, 2013

在 AWS EC2 機器上,在我的/etc/httpd/conf/httpd.conf文件中,我有以下伺服器配置:

NameVirtualHost *:80
<VirtualHost *:80>
   ServerAdmin me@me.com
   ServerName www.example.com
   DocumentRoot /var/www/html
   <Directory />
   Options FollowSymLinks
   AllowOverride All
   </Directory>
   <Directory /var/www/html/zf2-tutorial/public>
   DirectoryIndex index.php
   AllowOverride All
   Order allow,deny
   Allow from all
   </Directory>
</VirtualHost>

這在處理“www.example.com”流量方面做得很好,當我請求“www.example.com/Workstream”時,我得到的應用程序位於/var/www/html/Workstream.

因此,對自己感覺良好,我決定要花哨並讓 Web 伺服器將“ workstream .example.com”流量路由到/var/www/html/Workstream(遵循Apache VirtualHost 文件範例)。

所以我得到了別名為相關 A 記錄的 CNAME——完成,工作,很好。然後,我將目光投向了 httpd.conf 文件,將其添加<VirtualHost>到現有文件的後面:

<VirtualHost *:80>
   ServerAdmin me@me.com
   ServerName workstream.example.com
   DocumentRoot /var/www/html/Workstream
   <Directory />
   Options FollowSymLinks
   AllowOverride All
   </Directory>
</VirtualHost>

我保存了編輯,然後重新啟動了 apache(sudo /usr/sbin/apachectl restart–不知道為什麼我的 apache 不在其他人的位置)並將瀏覽器指向“workstream.example.com”,然後……得到了/var/www/html. 重新啟動返回此警告:

$$ warn $$ 預設VirtualHost 在 80 埠重疊,第一個優先

我是這樣的Linux菜鳥,這很痛苦。我究竟做錯了什麼?我是否正在編輯正確的 httpd.conf(使用 find / -xdev 2>/dev/null -name "httpd.conf"我看到還有另一個 httpd.conf at /opt/railo/sys/httpd.conf)?ServerName 是否需要與我尚未設置的內容相對應?我的語法不正確嗎?


結果sudo /usr/sbin/apachectl -S是:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
        default server www.example.com (/etc/httpd/conf/httpd.conf:1005)
        port 80 namevhost www.example.com (/etc/httpd/conf/httpd.conf:1005)
        port 80 namevhost workstream.example.com (/etc/httpd/conf/httpd.conf:1020)
Syntax OK

您的配置中是否有NameVirtualHost *:80(參見“ NameVirtualHost 指令”)指令?如果不是,那麼它將被視為基於 IP 的虛擬主機,它會忽略Host瀏覽器發送的標頭。

NameVirtualHost *:80指令應該是消除該錯誤所需的。Apachectl 接受了它,所以我懷疑 apache 沒有正確重新載入。…不要成為那個人…但是您嘗試過重新啟動嗎?

另一種方法是殺死所有列出的 httpd pidps -ef並啟動?

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