Виртуальные хосты Apache в подкаталогах

Я пытаюсь настроить Apache для обслуживания нескольких приложений на одном IP-адресе через подкаталоги. Скажем, я хочу получить доступ к App1 через http://aaa.bbb.ccc.ddd/app1 и App2 через http://aaa.bbb.ccc.ddd/app2. Оба, App1 и App2, являются независимыми проектами django. Я убедился, что оба приложения работают нормально, обслуживая только одно из них через Apache.

Я добавил следующие строки в файл httpd.conf Apache:

# 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>

При такой работе возникает ошибка "Forbidden, You don't have permission to access this resource.", когда я вызываю http://aaa.bbb.ccc.ddd/app2 с другой машины. Аналогично, если я помещаю виртуальный хост App2 перед виртуальным хостом App1, я больше не могу получить доступ к http://aaa.bbb.ccc.ddd/app1. Таким образом, доступен либо App1, либо App2, но никогда оба.

Первый вопрос: Возможна ли вообще моя идея обслуживать веб-страницы через под-URL? Если нет, то какова будет альтернатива? Использование разных портов для разных приложений? Если это "правильный" подход, почему при такой конфигурации я имею доступ только к одному, но не к обоим приложениям

Цель директивы VirtualHost - предоставить различные приложения на основе запрошенных хостов. Чтобы разрешить приложение на основе каталога, вы можете использовать директиву вместо VirtualHost.

Вернуться на верх