我剛剛獲得了一個新的雲端伺服器,在設定它時,我可以透過將瀏覽器指向我的伺服器的IP 位址來存取Web 根目錄,但網域仍在傳播,因此當我訪問它們時,它們無法解析。
當我將瀏覽器指向伺服器的 IP 位址時,它實際上解析為我設定的第一個 VirtualHost不應該是根資料夾。當我訪問時,這個 VirtualHost 應該會出現IP位址/路徑, 不只是IP位址。
伺服器設定:
主持人:機架空間雲端伺服器
作業系統:作業系統6
虛擬主機:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.wphax.com
ServerAlias wphax.com *.wphax.com
DocumentRoot /var/www/wphaxcom
ErrorLog /var/www/wphaxcom/error.log
CustomLog /var/www/wphaxcom/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.dnadvanced.com
ServerAlias dnadvanced.com *.dnadvanced.com
DocumentRoot /var/www/dnadvancedcom
ErrorLog /var/www/dnadvancedcom/error.log
CustomLog /var/www/dnadvancedcom/access.log combined
</VirtualHost>
有什麼想法可能導致此問題,以及如何設定它,以便無法透過輸入 IP 位址存取根目錄,但網域名稱將正確解析到其指定的資料夾?謝謝。
答案1
來自基於名稱的虛擬主機支持Apache 伺服器文件中的文章:
基於 IP 的虛擬主機使用連接的 IP 位址來決定要提供服務的正確虛擬主機。 [...]
基於名稱的虛擬主機通常更簡單,因為您只需設定 DNS 伺服器以將每個主機名稱對應到正確的 IP 位址,然後設定 Apache HTTP Server 以識別不同的主機名稱。 [...]
透過直接指定 IP 位址,您是本質上是選擇設定檔中列出的第一個虛擬主機。由於您從未在設定檔中指定 IP 位址,因此該主機正在偵聽所有 IP。 Apache 如何確定要提供服務的網站取決於從客戶端請求的 HTTP 標頭中收到的資訊。
除非您可以透過獨立的 IP 位址或不同的連接埠號碼(即將第二個虛擬主機設定為連接埠 81)存取兩個虛擬主機,否則您將必須等待網域名稱變更傳播。
如果你真的現在需要測試伺服器,您可以嘗試在每次請求後手動修改 HTTP 標頭(使用類似篡改數據Firefox 的外掛程式),以便 Apache 將為您的瀏覽器提供正確的頁面。