簡體   English   中英

Apache 子目錄上的虛擬主機

[英]Apache virtual hosts on subdirectories

我正在嘗試設置 Apache 以通過子目錄在一個 IP 地址上提供多個應用程序。 比方說,我想通過 http://aaa.bbb.ccc.ddd/app1 訪問 App1,通過http://aaa.bbb.ccc.ddd/app2訪問App2。 App1 和 App2 都是獨立的 django 項目。 我確保這兩個應用程序在 Apache 上只提供其中一個應用程序運行良好。

我在 Apache 的 httpd.conf 文件中添加了以下行:

# App1
<VirtualHost *:80>
    DocumentRoot "D:/Projects/App1/App1"
    ServerName App1

    <Directory "D:/Projects/App1/App1">
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIScriptAlias /app1 "D:/Projects/App1/App1/wsgi.py"
</VirtualHost>

# App2
<VirtualHost *:80>
    DocumentRoot "D:/Projects/App2/App2"
    ServerName App2

    <Directory "D:/Projects/App2/App2">
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIScriptAlias /app2 "D:/Projects/App2/App2/wsgi.py"
</VirtualHost>

像這樣工作會導致出現“禁止訪問,您無權訪問此資源”的錯誤。 當我從另一台機器撥打http://aaa.bbb.ccc.ddd/app2時。 與此類似,如果我將App2虛擬主機放在App1虛擬主機前面,我就無法訪問http://aaa.bbb.ccc.ddd/app1了。 因此,可以訪問的是 App1 或 App2,但絕不會同時訪問它們。

第一個問題:我是否有可能通過子 URL 向網頁提供服務? 如果沒有,還有什么選擇? 為不同的應用程序使用不同的端口? 如果這是一種“有效”的方法,為什么我只能訪問一個應用程序而不是兩個應用程序。

VirtualHost指令的目的是根據請求的主機提供不同的應用程序。 要基於目錄解析應用程序,您可以使用Alias指令而不是 VirtualHost。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM