如何添加虛擬主機來處理(工作)CNAME 的請求?
在 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 pid
ps -ef
並啟動?