У меня есть виртуальные хосты для работы, но почему-то моя настройка ведет себя странно.
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
в зависимости от вашего распределения