同一台機器上的兩個 apache 伺服器具有相同的埠
我的 Raspberry Pi 上有一個帶有 php 和 mysql 的自託管 apache 網站。現在我需要為我的新域再做一個,但我沒有其他電腦可以執行伺服器。有沒有辦法讓我在同一台機器上使用相同的埠執行伺服器?如果沒有,我該如何更改埠,這樣我就不需要輸入 example.com:portnumber。我需要它是example.com。
是的,您可以在一台機器上擁有兩個不同的網站。
我知道兩種不同的可能性,但我很確定還有更多的方法:
選項1:
只需執行一個 apache 實例並通過 Virtual Hosts 區分域。
您可以在其中創建它們,
/etc/apache2/sites-available
然後從/etc/apache2/sites-enabled
要啟用或使用a2ensite
cmd 的相應文件創建符號連結。為每個虛擬主機創建一個
<Virtual Host>
-Block 並添加相應的 ServerName-Tag(您的域名)和文件的 DocumentRoot。進一步閱讀和範例:基於名稱的虛擬主機支持
選項 2:
使用反向代理,例如 nginx。在埠 80 上執行此反向代理並讓 apache 使用 80 以外的 2 個埠(每個站點一個)。至於 apache,您必須在其中設置多個伺服器塊
/etc/nginx/sites-available
並通過從/etc/nginx/sites-enabled
.在這種情況下,反向代理還處理 https(SSL 證書等),反向代理背後的流量(僅在本地電腦上)要麼完全未加密,要麼由 apache 加密,然後由 nginx 解密並重新加密。
進一步閱讀和範例:NGINX 反向代理
或者,您也可以單獨使用 nginx 作為新網站的網路伺服器,並且僅反向代理“舊”網站。
我不確定是否有可能必須在同一台機器上執行完全獨立的 apache 實例,但我也不明白為什麼這是必要的。您可以更改每個虛擬主機所需的大部分(如果不是全部)設置。如果這是可能的,您可以再次使用 nginx(或另一個反向代理)從埠 80 訪問它們。