處理沒有子域的不同“域”

處理沒有子域的不同“域”

我有一個伺服器(“myserver”),它只允許透過 HTTPS 向連接埠 80 發出請求。另一個限制是我無法建立子網域,所以我必須堅持使用「myserver」。

現在,我有兩個應用程式:「frontend」在連接埠8000 中運行,「backend」在連接埠9000 中運行。 ,使用不同的文檔根、伺服器名稱、等等,但由於這是不可能的,我想我將不得不使用諸如“myserver/frontend”和“myserver/backend”之類的路徑。

可以這樣做嗎?你知道哪個設定指令可以讓我做到這一點嗎?也許使用別名指令?

答案1

是的,您可以僅使用具有單一 IP 位址的子網域。在 Apache 中,您必須設定虛擬伺服器。

在這裡查看第一個範例:https://httpd.apache.org/docs/2.2/vhosts/examples.html

請注意,您為要提供服務的每個網站設定了每個虛擬伺服器。確保您設定了以下各項:

  1. 每個虛擬伺服器的監聽器為 *:80
  2. DocumentRoot 值指向每個網站的內容目錄
  3. 您要提供服務的每個 URL 的 ServerName 值

    <VirtualHost *:80>
    DocumentRoot /www/frontendcontent
    ServerName frontend.myserver
    </VirtualHost>
    
    <VirtualHost *:80>
    DocumentRoot /www/backendcontent
    ServerName backend.myserver
    </VirtualHost>
    

如果您希望 example.org 和 www.example.org 等內容正常運作,您可能還需要使用 ServerAlias 指令。為此,您可以像新增 ServerName 行一樣新增 ServerAlias,但指定要用於該虛擬伺服器 ServerName 的別名。這是有關 ServerAlias 的文檔,但我建議您先完成上述工作,然後在必要時處理 ServerAlias: http://httpd.apache.org/docs/2.2/mod/core.html#serveralias

相關內容