Apache-2.4

無法使虛擬主機工作

  • January 25, 2017

我在 Ubuntu 16.04 上使用 Apache 2.4。

無論我做什麼 - 無法使虛擬主機工作,一切都被路由到000-default.conf中定義的配置。我啟用了以下站點:

開發者配置文件

<VirtualHost *.80>
   ServerName dev.example.com
   DocumentRoot "a valid path"
   ProxyPass /api http://localhost:8090
   ServerAdmin webmaster@example.com
   ProxyPreserveHost On
   RemoteIPHeader X-Forwarded-For
   RemoteIPInternalProxy localhost
</VirtualHost>

000-default.conf

<VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com
   RewriteEngine on
   RewriteCond %{SERVER_NAME} =www.example.com [OR]
   RewriteCond %{SERVER_NAME} =example.com
   RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>

當然,域被更改為example.com,我刪除了文件根目錄的真實文件路徑。

兩個文件都出現/etc/apache2/sites-enabled了,如果在 dev.conf 中添加一些垃圾,Apache 不會啟動,所以我知道它會讀取它。

DNS 設置正確 - dev.example.com 和 example.com 的 nslookup 返回相同的正確 IP(從外部網路測試)。

我在 Debian 和 Apache 2.2 上進行了類似的設置,並且效果很好(不再擁有它,無法比較)。

我發送的任何請求都被路由到000-default.conf、 dev.example.com 或任何-that’s-valid.example.com,因為我沒有DocumentRoot指令(我也嘗試添加它),因為我正在重定向到 https 版本,我得到的是預設的/var/www/html.

此路徑不會出現在任何配置文件中,並且可能被編譯為DocumentRoot.

有沒有人知道如何使dev.conf虛擬主機工作?

你有一個錯字:

<VirtualHost *.80>

應該

<VirtualHost *:80>

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