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

Как сделать так, чтобы Apache перенаправлял несколько доменов на несколько проектов Django?

Итак, я начну с объяснения своей цели. У меня есть несколько доменов, которые я маршрутизирую на простой IP-адрес на моем сервере. Я хочу, чтобы Apache направил каждый домен в соответствующий wsgi.py файл в своем проекте Django. Похоже, официальные документы написаны для обработки одного домена на сервер. Вот они, если вы хотите их проверить Документы. Я также хотел бы отметить, что я действительно не хочу использовать фреймворк сайтов Django, потому что он, похоже, не предназначен для того, что мне нужно.

Итак, я покажу вам, что я пробовал. Я поместил это внутри sites-available/000-default.conf файл.

<VirtualHost *:80>
    ServerName www.foo.com
    ServerAlias foo.com

    Alias /media/ /path/to/foo.com/media/
    Alias /static/ /path/to/foo.com/static/

    <Directory /path/to/foo.com/static>
        Require all granted
    </Directory>

    <Directory /path/to/foo.com/media>
        Require all granted
    </Directory>

    WSGIScriptAlias / /path/to/foo.com/foo/wsgi.py

    <Directory /path/to/foo.com/foo>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    ServerName www.foo2.com
    ServerAlias foo2.com

    Alias /media/ /path/to/foo2.com/media/
    Alias /static/ /path/to/foo2.com/static/

    <Directory /path/to/foo2.com/static>
        Require all granted
    </Directory>

    <Directory /path/to/foo2.com/media>
        Require all granted
    </Directory>

    WSGIScriptAlias / /path/to/foo2.com/foo/wsgi.py

    <Directory /path/to/foo2.com/foo2>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>

Как ни странно, ни один сайт не загружается. Я просто получаю, что Apache просто обслуживает мою пустую страницу индекса файлов. Обратите внимание, что у меня нет WSGIPythonPath /path/to/foo2.com/ включены. Я получаю сообщение об ошибке при включении. И я не совсем уверен, что это нужно.

Вещи iv'e тоже сделали.

Так что это в основном все. Я поискал по всему Интернету и не смог найти никаких актуальных решений. Если вы знаете, как решить эту проблему, сообщите мне. Если возможно, постарайтесь включить код в свои ответы.

PS. Я запускаю это в Ubuntu Server 14.04 с python 2.7.

Не редактировать 000-default.conf. Правильный способ создания сайта в Ubuntu - создать новый файл в каталоге. /etc/apache2/sites-available каталог, содержащий все, что специально для этого сайта. Для ваших двух сайтов вам нужно создать два файла, foo.com и foo2.com. Разместите соответствующие <virtualhost *:80> ... </virtualhost> разделы в соответствующем файле.

Затем включите каждый сайт с помощью команды a2ensite, который создает на него символическую ссылку в /etc/apache2/sites-enabled:

# a2ensite foo.com
# a2ensite foo2.com

Я не могу обнаружить никаких проблем в вашей настройке, но подозреваю, что вы не включили модуль wsgi:

# a2enmod wsgi