Apache-Httpd
Apache2 VirtualHosts 如何解決?
據我了解,當您使用瀏覽器從網站請求 url 時,它會詢問作業系統指向的 DNS 伺服器是否知道與伺服器的 dns 名稱相關的 IP 地址;然後如果 DNS 伺服器找到請求的伺服器,它會返回 ip,以便瀏覽器可以從 web 伺服器請求 url。
考慮到此時瀏覽器使用伺服器的 ip 地址而不是 dns-name 請求 URL,webserver (Apache2) 如何知道如何返回與 dns-name 關聯的正確 VirtualHost?
我的頭腦告訴我它與瀏覽器標題有關,但我並不完全確定這一點。
**注意:**這是一個相關的解決方案
HTTP 請求有許多標頭,而不僅僅是請求的路徑。這些標頭之一(
Host:
標頭)是您請求的主機名(因此 unix.SE 為“unix.stackexchange.com”)。Apache 會查看這一點並適當地為請求提供服務。附帶說明:HTTPS 過去被限制為每個 IP 一個證書,因為
Host:
標頭是加密的。在伺服器獲得該標頭之前,它不知道要發送哪個證書,但在獲得請求(需要證書)之前它無法獲得標頭。這在 TLS 中通過伺服器名稱指示擴展解決了,該擴展Host
在初始握手中添加了類似標題的內容。