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

Как создать сайт Apache для запросов без домена?

Как вы настраиваете сайт Apache, чтобы он использовался специально для запросов, которые не содержат доменного имени (т.е. они поступают прямо с IP, http://123.45.67.89/)?

Этот ответ предлагает создать виртуальный хост, например:

<VirtualHost *>
    DocumentRoot /www/default
    # ...
</VirtualHost>

но у меня это не работает на Apache 2.4.18.

Я также попытался указать default.conf сайт без определенного ServerName, например:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        Alias /log/ "/var/log/"
    <Directory "/var/log/">
           Options Indexes MultiViews FollowSymLinks
           AllowOverride None
           Order deny,allow
           Deny from all
           Allow from all
            Require all granted
    </Directory>
</VirtualHost>

но это тоже не работает. Все запросы к IP-таймауту моего сервера, в то время как запросы к хостам доменных имен сервером отвечают мгновенно.

Заглянув в свой журнал ошибок apache, я вижу множество строк вроде:

[Sun Oct 29 21:13:13.843598 2017] [core:notice] [pid 5650:tid 139875504514944] AH00051: child pid 23179 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[Sun Oct 29 21:13:13.843609 2017] [core:error] [pid 5650:tid 139875504514944] AH00546: no record of generation 0 of exiting child 23179
[Sun Oct 29 21:13:14.845641 2017] [core:notice] [pid 5650:tid 139875504514944] AH00051: child pid 23183 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[Sun Oct 29 21:13:14.845704 2017] [core:error] [pid 5650:tid 139875504514944] AH00546: no record of generation 0 of exiting child 23183
[Sun Oct 29 21:13:14.845733 2017] [core:notice] [pid 5650:tid 139875504514944] AH00051: child pid 23184 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[Sun Oct 29 21:13:14.845746 2017] [core:error] [pid 5650:tid 139875504514944] AH00546: no record of generation 0 of exiting child 23184
[Sun Oct 29 21:13:14.845770 2017] [core:notice] [pid 5650:tid 139875504514944] AH00051: child pid 23185 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[Sun Oct 29 21:13:14.845783 2017] [core:error] [pid 5650:tid 139875504514944] AH00546: no record of generation 0 of exiting child 23185

Я полагаю, это нехорошо? Что может привести к сбою Apache?

Проблема оказалась в ошибке / ограничении количества сайтов ModWSGI, которые Apache может запускать одновременно. У меня было около 20 сайтов WSGI, на которых было запущено приложение Django, и, очевидно, это приводило к сбою Apache и отключению «простого» сайта, который я пытался тестировать.

Таким образом, оба приведенных выше примера на самом деле работают, но мне пришлось сначала удалить несколько сайтов WSGI, чтобы предотвратить сбой Apache.

Я считаю, что Apache использует алфавитный порядок файлов * .conf в sites-enabled каталог. Итак, если бы у меня были сайты на сервере:

example.org.conf
example.org-ssl.conf
another-domain.conf
another-domain-ssl.conf

и я хотел использовать example.org в качестве сайта "по умолчанию", вы могли бы создать символическую ссылку на сайт, который вам нужен, с таким именем, как 000-default.conf (Debian делает это).

000-default.conf -> example.org.conf