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

Другие вопросы по тегам