Apache2

是否有必要為 http 和 https 使用單獨的虛擬主機塊

  • December 24, 2020

每個站點的 http 和 https 版本是否需要單獨的虛擬主機塊?或者有什麼方法可以避免重複?

根據我的測試,似乎有必要為每個埠上的預設虛擬主機設置單獨的虛擬主機塊,但輔助虛擬主機可以對普通 http 和 https 使用相同的虛擬主機塊。

但是,必須使用明確的埠列表(例如 *:80 *:443)指定這些輔助虛擬主機,而不僅僅是使用普通萬用字元。

例如,與 nginx 中的伺服器塊不同,它可以在單個伺服器塊中同時支持 http和https 定義(每個都在不同的埠上),Apache VirtualHost 只有一個切換。

SSLEngine指令為整個 VirtualHost 打開或關閉 TLS。

(該SSLEngine optional設置更多的是一種好奇心,而不是從單個 VirtualHost 塊支持純 http 和 https 的有效生產選項。)

當嘗試使用純 http 連接到 Apache https IP 地址和埠組合時,您將收到協議錯誤,反之亦然,當在純 http 埠上使用 https 時。

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