Apache-2.4
無法使虛擬主機工作
我在 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>