Назад | Перейти на главную страницу

Apache2: VirtualHost и Django

Мы размещаем два сайта и на данный момент не имеем доменного имени, поэтому мы используем IP-адрес. Я хочу, чтобы два сайта были доступны следующим образом:

http://123.123.123.123/Site1
http://123.123.123.123/Site2

Site1 - это небольшой О нас типа сайт. Site2 - это сайт для загрузки файлов на основе Django.

Вот мой файл httpd.conf:

WSGIPythonPath /var/www/Site2/src/site
Listen 80
NameVirtualHost *:80

# Site1
<VirtualHost *:80>
    ServerName Site1
    DocumentRoot /var/www/Site1
</VirtualHost>

# Site2
<VirtualHost *:80>
    ServerName Site2

    WSGIScriptAlias /Site2 /var/www/Site2/src/site/wsgi.py

    <Directory /var/www/Site2/src/site>
        <Files wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>

    Alias /static/ /var/www/Site2/src/site/static/

    <Directory /var/www/Site2/src/site/static>
        Order deny,allow
        Allow from all
    </Directory>

    <Location /var/www/Site2/src/site/static/>
        AuthType Basic
        AuthName "site"
        AuthBasicProvider wsgi
        WSGIAuthUserScript /usr/local/wsgi/scripts/auth.wsgi
        Require valid-user
    </Location>
</VirtualHost>

123.123.123.123/Site1 работает нормально. Посещение 123.123.123.123/Site2 дает только Индекс / Site2 страница.

Если я переупорядочу объявления VirtualHost, Site2 будет работать, а Site1 - нет.

Я упускаю что-то невероятно важное?

Я видел, как эта проблема возникала в ряде результатов поиска и на форумах, но пока не нашел решения.

Вам нужно использовать Alias вместо виртуального хоста, поскольку вы имеете дело с одним доменом.

См. Принятый ответ на этот пост:

https://stackoverflow.com/questions/9505689/virtual-hosts-on-apache-with-urls-like-subfolders