Apache-2.2
基於 Apache IP 的託管解決方案顯示 apache 測試頁面而不是網站
我正在嘗試將我的虛擬伺服器設置為基於 IP 託管網站。目前我正在嘗試僅設置 1 個網站並僅使用 1 個 IP。
/etc/httpd/conf.d/example.com.conf 文件內容:
Listen 80 NameVirtualHost xx.xxx.xx.xxx:80 <VirtualHost xx.xxx.xx.xxx:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/sites/example.com/public ErrorLog /var/log/httpd/example.com/error.log CustomLog /var/log/httpd/example.com/access.log combined </VirtualHost>
我從 httpd.conf 中刪除了“Listen”和“NameVirtualHost”,並且只在我的 example.com.conf 文件中使用它們。
我遇到的問題是 apache 測試頁面啟動而不是網站,但是一旦我將 IP 更改為“*”它就可以工作:
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/sites/example.com/public ErrorLog /var/log/httpd/example.com/error.log CustomLog /var/log/httpd/example.com/access.log combined </VirtualHost>
任何想法為什麼會發生這種情況?
更新!!我嘗試使用的 IP 地址不是內部網路 IP,而是外部(公共)IP 地址。我有 3 個公共 IP 地址指向該伺服器。
謝謝,亞歷克斯
由於您有防火牆或其他設備將數據包上的 IP 從公共 IP 更改為私有 IP,因此您需要在 Apache 的配置中使用私有 IP
VirtualHost
。Apache 只會看到私有 IP,因此它不會知道最初請求的公共 IP。
你還有
welcome.conf
CentOS 放在 Apache conf 目錄中的那個嗎?一旦您開始自定義您的 Apache 配置,就不需要它,它充當預設的包羅萬象的虛擬主機。