Входящий веб-трафик идет к другим виртуальным хостам Apache.

Вопрос или проблема

Я пытаюсь настроить локальный веб-сервер на Raspberry. Я установил LAMP и он работает, хосты и виртуальные хосты в порядке, когда я открываю страницы напрямую на сервере, но весь входящий трафик с других устройств в сети попадает в “other_vhosts_access.log”.

Что я сделал

На моем компьютере файл /etc/hosts содержит строку для перенаправления www.webfantasy.test на сервер:

192.168.1.78 www.webfantasy.test

На сервере файл /etc/hosts содержит строку для перенаправления www.webfantasy.test на локальный хост (необходимо, виртуальный хост не был загружен, если я не добавил его):

127.0.1.1 www.webfantasy.test

Файл 000-default.conf был удален из sites-enabled с помощью команд “a2dissite”, и сервис apache был перезагружен.

Файл виртуального хоста для конкретного домена активирован:

<VirtualHost www.webfantasy.test:80>
    ServerName www.webfantasy.test
    ServerAlias www.webfantasy.test

    DocumentRoot /var/www/webfantasy
    DirectoryIndex index.php

    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/webfantasy_error.log
    CustomLog ${APACHE_LOG_DIR}/webfantasy_access.log combined
</VirtualHost>
apache2ctl -t -D DUMP_VHOSTS
AH00558: apache2: Не удалось надежно определить полное доменное имя сервера, используется 127.0.1.1. Установите директиву 'ServerName' глобально, чтобы подавить это сообщение
Конфигурация виртуального хоста:
127.0.1.1:80           www.webfantasy.test (/etc/apache2/sites-enabled/webfantasy.conf:1)

Что я получаю

  • С сервера www.webfantasy.test отвечает правильной страницей (/var/www/webfantasy/index.php) и фиксируется в файле webfantasy_access.log
  • С моего компьютера www.webfantasy.test отвечает стандартной страницей Debian/Apache (var/www/html/index.html) и фиксируется в файле other_vhosts_access.log

Кто-то знает, что я мог бы изменить, чтобы это заработало правильно?

Вы читали документацию? В ней говорится следующее:

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

<VirtualHost www.webfantasy.test:80> связывает виртуальный хост с www.webfantasy.test, который разрешается в 127.0.1.1 – или localhost. Это будет работать только на localhost; любой запрос на любом другом интерфейсе не поступит в этот виртуальный хост.

Удалите запись в файле /etc/hosts на серверах и используйте <VirtualHost *:80>, как предлагает документация.

Ответ или решение

Для решения проблемы, с которой вы столкнулись при настройке виртуальных хостов на вашем Raspberry Pi с использованием Apache, давайте рассмотрим основные аспекты и шаги, чтобы устранить неполадки и правильно настроить сервер.

1. Проблема

Вы описываете ситуацию, когда локальный сервер отвечает корректно на запросы, поступающие с самого сервера, но когда запрос поступает с другого устройства в сети, он перенаправляется на стандартную страницу Apache и записывается в файл other_vhosts_access.log. Это происходит из-за неправильной конфигурации виртуального хоста.

2. Корни проблемы

Основная проблема заключается в том, что вы ограничили ваш виртуальный хост только одним IP-адресом (127.0.1.1), который соответствует локальному хосту. Это означает, что запросы, поступающие с внешних устройств, не могут сопоставляться с указанным виртуальным хостом, и Apache, не находя соответствия, отправляет эти запросы на стандартный веб-сайт, который обычно находится по пути /var/www/html/index.html.

3. Решения

Шаг 1: Измените конфигурацию виртуального хоста

Вместо использования 127.0.1.1, вы должны изменить конфигурацию вашего виртуального хоста, чтобы использовать *, что позволит Apache слушать запросы на всех интерфейсах.

Пример:

<VirtualHost *:80>
    ServerName www.webfantasy.test
    ServerAlias www.webfantasy.test

    DocumentRoot /var/www/webfantasy
    DirectoryIndex index.php

    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/webfantasy_error.log
    CustomLog ${APACHE_LOG_DIR}/webfantasy_access.log combined
</VirtualHost>

Шаг 2: Удалите ненужные записи из файла /etc/hosts

На вашем сервере не нужно добавлять запись для www.webfantasy.test в файл /etc/hosts. Достаточно настроить конфигурацию виртуального хоста без жесткой привязки к IP-адресу.

Шаг 3: Дополнительные настройки

  1. Убедитесь, что ваш DNS или локальный механизм разрешения имен (например, через /etc/hosts на вашем компьютере) правильно настроены так, что www.webfantasy.test указывает на IP-адрес вашего Raspberry Pi (192.168.1.78).

  2. Проверьте, что Apache перезагружен после внесения изменений в конфигурацию:

    sudo systemctl reload apache2

4. Проверка работоспособности

После выполнения вышеуказанных шагов выполните следующие действия:

  • Попробуйте обратиться к http://www.webfantasy.test с вашего другого устройства.
  • Если все настройки выполнены корректно, вы должны увидеть контент, который находится в папке /var/www/webfantasy, и запись должна появиться в файле webfantasy_access.log.

Заключение

Следуя этим рекомендациям, вы сможете настроить вашу локальную веб-систему так, чтобы она обрабатывала запросы с любых устройств в сети без проблем. Если, несмотря на изменения, возникнут сложности, убедитесь, что нет дополнительных сторонних настроек или блокировок (например, брандмауэра) на вашем сервере или в сети, которые могут мешать соединениям.

Оцените материал
Добавить комментарий

Капча загружается...