總有一些錯誤淬不及防,若是你在配置 apache2.4 上的 https過程當中,看起來全部的配置都正確了,並且參考了衆多文章還存在錯誤,那麼只有一個可能,那就是
VirtualHost
的監聽的域名端口出錯了.apache
是否是有點想發泄一下,昨晚就這一個問題,我配置了4個小時,最後一行一行代碼刪,才找到問題的點,也能夠說,是本身對 VirtualHost
掌握的還不夠.服務器
解決方法只有一個:要麼基於IP來作虛擬主機,要麼基於名稱來作虛擬主機,不要混用,不要混用,否則優先級絕對是一個大坑,並且推薦使用 基於名稱來作,也就是 <VirtualHost *:443>
spa
我原來的配置是命令行
<VirtualHost localhost:443>調試 ...code </VirtualHost>文檔 <VirtualHost www.example.com:443>域名 ...table </VirtualHost>配置 |
對於 VirtualHost
,官方定於以下:
<VirtualHost addr[:port] [addr[:port]] ...> ... </VirtualHost> |
也就是說,能夠監聽多個地址多個端口
對於 addr
這一段,官方是這麼描述的
+ 虛擬主機的 IP + 域名的全稱,不推薦 + * 號,就是能夠監聽多個IP + _default_ 這個是 * 號的別名 |
重要的是要知道,VirtualHost有兩種配置方法,基於IP地址的虛擬主機和基於名稱的虛擬主機,並且,二者不能混用,是的,二者不能混用
我一開始掌握的只是仍是好好的,後來以爲能夠填上IP啊,就填了。一旦填上IP,優先級就坑爹了
而後,官方的下面這段話也頗有用,我以爲是整個文檔裏最有用的一段話了:
若是你要調試虛擬主機配置,你會發現 Apache 的命令行參數 -S 很是有用。即輸入如下命令:
/usr/local/apache2/bin/httpd -S
這個命令將會顯示 Apache 是如何解析配置文件的。仔細檢查 IP 地址與服務器名稱可能會幫助你發現配置錯誤