Настройка VirtualHost для запуска второго веб-сайта, проблема с <VirtualHost *: 8080>, ошибка с `Listen`
Я пытаюсь выяснить, как разместить второй сайт Django с моей виртуальной машины, и мне интересно, может ли кто-нибудь увидеть, где я допустил какие-либо очевидные ошибки.
В настоящее время какой-либо сайт настроен на <VirtualHost *:80>
работает. Из этого ответа я узнал, что мне следует указать второй <VirtualHost *:8080>
, Однако, когда я пытаюсь использовать Listen
Я получаю ошибку ниже, когда я пытаюсь перезагрузить Apache
Работа для apache2.service не удалась. Для получения дополнительной информации см. "Systemctl status apache2.service" и "journalctl -xn".
Кто-нибудь понимает, что может быть не так?
Почему
<VirtualHost *:80>
но нет<VirtualHost *:8080>
?И почему я получаю ошибку при указании
Listen
?
Я использую Debian 8.5, Apache 2.4.10 и mod-wsgi 4.3.0-1.
Listen 80
<VirtualHost *:80>
ServerName myserver.scss.tcd.ie/bias_experiment/
Alias /bias_experiment/static/ /var/www/bias_experiment/static/
<Directory /var/www/bias_experiment/static>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias /bias_experiment /var/www/bias_experiment/src/bias_experiment/index.wsgi
<Directory /var/www/bias_experiment/src/bias_experiment>
<Files index.wsgi>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
Listen 8080
<VirtualHost *:8080>
ServerName myserver.scss.tcd.ie/bias_experiment_two/
Alias /bias_experiment_two/static/ /var/www/bias_experiment_two/static/
<Directory /var/www/bias_experiment_two/static>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias /bias_experiment_two /var/www/bias_experiment_two/src/bias_experiment/index.wsgi
<Directory /var/www/bias_experiment_two/src/bias_experiment>
<Files index.wsgi>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
Любая помощь, как всегда, высоко ценится.
1 ответ
Вы не можете установить ServerName
как ты. ServerName
директива должна быть только именем хоста, иначе именованные виртуальные хосты не будут работать, если у вас несколько VirtualHost
определения. Единственная причина, по которой что-либо может быть обработано как есть, заключается в том, что, когда виртуальные хосты на основе имени не настроены правильно или не совпадают имена хостов, Apache будет отправлять запросы первому VirtualHost
найдено, когда конфигурация была прочитана. То, что вы должны делать, это иметь все в одном VirtualHost
если вы хотите, чтобы они были доступны через одно имя хоста. Можно использовать разные порты, но это менее удобно.
<VirtualHost *:80>
ServerName myserver.scss.tcd.ie
WSGIDaemonProcess bias_experiment
Alias /bias_experiment/static/ /var/www/bias_experiment/static/
<Directory /var/www/bias_experiment/static>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias /bias_experiment /var/www/bias_experiment/src/bias_experiment/index.wsgi \
process-group=bias_experiment application-group=%{GLOBAL}
<Directory /var/www/bias_experiment/src/bias_experiment>
<Files index.wsgi>
Order deny,allow
Allow from all
</Files>
</Directory>
WSGIDaemonProcess bias_experiment_two
Alias /bias_experiment_two/static/ /var/www/bias_experiment_two/static/
<Directory /var/www/bias_experiment_two/static>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias /bias_experiment_two /var/www/bias_experiment_two/src/bias_experiment/index.wsgi \
process-group=bias_experiment_two application-group=%{GLOBAL}
<Directory /var/www/bias_experiment_two/src/bias_experiment>
<Files index.wsgi>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
Чтобы разделить приложения WSGI, объявляются две отдельные группы процессов-демонов, и каждое приложение WSGI делегируется в другую группу процессов.
Два приложения WSGI будут доступны как:
Если это сайты Django, вам, скорее всего, потребуются дополнительные изменения в настройках, которые вам нужно будет внести в файл настроек Django, чтобы позволить обоим работать под одним именем хоста и не мешать друг другу.