Linux

同一台機器上的兩個 apache 伺服器具有相同的埠

  • July 6, 2020

我的 Raspberry Pi 上有一個帶有 php 和 mysql 的自託管 apache 網站。現在我需要為我的新域再做一個,但我沒有其他電腦可以執行伺服器。有沒有辦法讓我在同一台機器上使用相同的埠執行伺服器?如果沒有,我該如何更改埠,這樣我就不需要輸入 example.com:portnumber。我需要它是example.com。

的,您可以在一台機器上擁有兩個不同的網站。

我知道兩種不同的可能性,但我很確定還有更多的方法:

選項1:

只需執行一個 apache 實例並通過 Virtual Hosts 區分域

您可以在其中創建它們,/etc/apache2/sites-available然後從/etc/apache2/sites-enabled要啟用或使用a2ensitecmd 的相應文件創建符號連結。

為每個虛擬主機創建一個<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 訪問它們。

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