Apache-2.2

基於 Apache IP 的託管解決方案顯示 apache 測試頁面而不是網站

  • July 11, 2012

我正在嘗試將我的虛擬伺服器設置為基於 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.confCentOS 放在 Apache conf 目錄中的那個嗎?

一旦您開始自定義您的 Apache 配置,就不需要它,它充當預設的包羅萬象的虛擬主機。

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