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

Виртуальные хосты Django, mod_wsgi и apache

У меня есть виртуальные хосты для работы, но почему-то моя настройка ведет себя странно.

NameVirtualHost *

<VirtualHost *>
 ServerAdmin webmaster@localhost
 ServerName x.com

    WSGIPassAuthorization On
    WSGIScriptAlias / /var/x/production/x.wsgi

 ErrorLog /var/log/apache2/error.log

 LogLevel warn

 CustomLog /var/log/apache2/access.log combined
 ServerSignature On

</VirtualHost>

<VirtualHost *>
 ServerAdmin webmaster@localhost
 ServerName staging.x.com

    WSGIPassAuthorization On
    WSGIScriptAlias / /var/x/testing/x.wsgi

 ErrorLog /var/log/apache2/error.log

 LogLevel warn

 CustomLog /var/log/apache2/access.log combined
 ServerSignature On

</VirtualHost>

Это файл по умолчанию в / etc / apache2 / sites-available на моем сервере.

У меня есть два файла .wsgi, указывающих на две копии одного и того же сайта с измененными файлами настроек (в основном база данных меняется с производственной на промежуточную).

Однако почему-то эта настройка не работает. Когда x.com находится сверху, и x.com, и staging.x.com используют одну и ту же базу данных. Когда я меняю порядок, оба домена указывают на промежуточный проект django.

Я почти уверен, что это не ошибка в mod_wsgi, но, возможно, я неправильно использую WSGIScriptAlias, возможно, я неправильно использую Apache ServerName.

Спасибо за проверку, я в тупике!

РЕДАКТИРОВАТЬ: вот результат apache2 -S

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:*                    is a NameVirtualHost
         default server x.com (/etc/apache2/sites-enabled/000-default:3)
         port * namevhost x.com (/etc/apache2/sites-enabled/000-default:3)
         port * namevhost staging.x.com (/etc/apache2/sites-enabled/000-default:19)
Syntax OK

Это помогает? Извините, я очень недоволен ошибками сервера. (Обычно выполняется работа с типом stackoverflow.)

Обычно я использую:

ИмяVirtualHost *: 80

или

ИмяVirtualHost 0.0.0.0:80

VirtualHost 0.0.0.0:80

У вас нет директив ServerAlias, поэтому вы можете публиковать результаты:

apache2 -S

или

httpd -S

в зависимости от вашего распределения