Вопрос или проблема
Я пытаюсь настроить локальный веб-сервер на 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: Дополнительные настройки
-
Убедитесь, что ваш DNS или локальный механизм разрешения имен (например, через
/etc/hosts
на вашем компьютере) правильно настроены так, чтоwww.webfantasy.test
указывает на IP-адрес вашего Raspberry Pi (192.168.1.78). -
Проверьте, что Apache перезагружен после внесения изменений в конфигурацию:
sudo systemctl reload apache2
4. Проверка работоспособности
После выполнения вышеуказанных шагов выполните следующие действия:
- Попробуйте обратиться к
http://www.webfantasy.test
с вашего другого устройства. - Если все настройки выполнены корректно, вы должны увидеть контент, который находится в папке
/var/www/webfantasy
, и запись должна появиться в файлеwebfantasy_access.log
.
Заключение
Следуя этим рекомендациям, вы сможете настроить вашу локальную веб-систему так, чтобы она обрабатывала запросы с любых устройств в сети без проблем. Если, несмотря на изменения, возникнут сложности, убедитесь, что нет дополнительных сторонних настроек или блокировок (например, брандмауэра) на вашем сервере или в сети, которые могут мешать соединениям.