已配置基於 Apache 名稱的虛擬主機,但兩個主機名都指向同一個站點
我有一個 apache2 網路伺服器在我的 Raspberry Pi (raspbian) 上完美執行,我最近想創建另一個站點。為此,我正在嘗試使用基於名稱的虛擬主機。我從https://my.noip.com/#!/dynamic-dns獲得了另一個動態 dns 主機名。我相信我已經正確配置了我的 2 個站點 conf 文件和 hosts 文件。
我的兩個網站分別稱為 ashwingupta.ddns.net 和 javacloudcompile.ddns.net(這是我之前的網站)。但是,如果我連接到其中任何一個,我現在將獲得 ashwingupta.ddns.net 的站點。以下是配置文件:
主機
127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 127.0.1.1 raspberrypi 127.0.1.1 javacloudcompile.ddns.net 127.0.0.1 ashwingupta.ddns.net
javacloudcompile.ddns.net.conf
NameVirtualHost *:80 <VirtualHost *:8080> ServerName javacloudcompile.ddns.net ServerAdmin ashiwingupta@localhost DocumentRoot /var/www/html/vhosts/javacloudcompile.ddns.net/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
ashwingupta.ddns.net.conf
NameVirtualHost *:8080 <VirtualHost *:8080> ServerName ashwingupta.ddns.net ServerAdmin ashiwingupta@localhost DocumentRoot /var/www/html/vhosts/ashwingupta.ddns.net/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
我已經啟用了兩個站點
a2ensite
,並且都聲稱已正確啟用。然後我用service apache2 restart
.(注意,一切都在 8080 上,我的 ISP 在 80 上阻止入站)
編輯:忘了提,
Listen 8080
我的ports.conf中有
在我看來,NOIP 服務正在通過框架呼叫您的伺服器,而框架源是您伺服器的 IP 地址,而不是域名:
<frame src="http://68.101.98.197:8080" name="redir_frame" frameborder=0>
您的 Apache 伺服器未收到請求的伺服器名稱。由於 conf 文件按字母順序載入,因此 ashwingupta.ddns.net.conf 具有最高優先級,並被視為主伺服器或預設伺服器(請參閱https://httpd.apache.org/docs/2.2/vhosts/examples。 html ).
解決此問題的一種方法是為 ashwingupta.ddns.net 使用不同的埠,例如埠 8081,假設您可以在 NOIP 配置中指定該埠號。