Как вы настраиваете сайт 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