| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Администрирование Web серверов и Web служб > Непонятная работа Apache 2.4 с виртуальными хостам |
| Автор: Majestio 20.5.2022, 10:57 |
| Установил Apache 2.4 под FreeBSD 13.0, настроил два виртуальных хоста, вижу что-то не то. А именно:
Но если отключить виртуальные хосты, тогда отдается как надо - http://freebsd-13.loc. Подскажите, пожалуйста, что я сделал неправильно. PS: Продублировал основной хост в виртуальных - заработало. Но, имхо, это костыль! :-( |
| Автор: Majestio 29.5.2022, 03:21 | ||
Не совсем, как хотелось бы. В виртуальных хостах продублировал настройки основного хоста - работает. Заметил в настройках в файле виртуальных хостов вот такой комментарий:
Возможно из-за этого и работает, но почему без этого не подхватывает основные настройки (основное имя сервера) - не понимаю! |
| Автор: Oldshelf 29.5.2022, 18:21 |
| Предположение. Что, если запрашиваемый хост "freebsd-13.loc" не совпадает ни с одним хостом из правил, например по протоколу (https!=http). Тогда в одном случае используется дефолтный хост из "httpd.conf", а в другом - первый из "extra/httpd-vhosts.conf". Проблему решило добавление во vhosts дефолтного хоста первым правилом? |
| Автор: Majestio 29.5.2022, 20:18 | ||||
В основном конфиге: ServerName freebasd-13.loc https пока не строил
Ага. |
| Автор: Oldshelf 30.5.2022, 14:56 |
| Похоже на обращение к дефолтному хосту из-за отсутствия подходящего под запрос хоста. Можно проверить. Переместить хост "freebsd-13.loc" с первого места в конец "extra/httpd-vhosts.conf", а в качестве первого хоста указать рандомный хост со страницей-заглушкой. Если сопоставление с "freebsd-13.loc" срабатывает, то это ни на что не повлияет, если же откроется заглушка, значит запрашиваемый хост "freebsd-13.loc" не совпадает с хостом, указанным в "extra/httpd-vhosts.conf". |
| Автор: Majestio 5.6.2022, 04:05 |
Так я уже и проверял. Если убрать из конфига виртуальных хостов запись о "freebsd-13.loc", то, при обращении к "freebsd-13.loc", начинает грузится содержимое из "template-html5.loc". Собственно, с чего и начался разговор. Получается, что в конфиге виртуальных хостов "основной" домен "freebsd-13.loc" резолвится, а из главного конфига - нет. |
| Автор: Oldshelf 5.6.2022, 16:33 |
| Понятно. Я предложил переместить "freebsd-13.loc" в списке виртуальных хостов на позицию ниже. Если что-то изменится и начнёт отдаваться "template-html5.loc", значит дело не в совпадении с записью для "freebsd-13.loc" в "extra/httpd-vhosts.conf", а в том, что запрашиваемый домен просто не находится и берётся любая первая запись в качестве замены. |
| Автор: Majestio 6.6.2022, 19:58 |
| Сделал как ты сказал. На freebsd-13.loc начало выдаваться содержимое из первого виртуального хоста, а именно с "template-html5.loc". И его пробовал комментить - тогда выдается с последнего ""template-laravel.loc". И только тогда, когда вообще нет виртуальных хостов (либо весь файл закомментирован, либо в файле все хосты в комменте) - только тогда честно отдается содержимое "freebsd-13.loc". |
| Автор: Oldshelf 7.6.2022, 10:33 | ||
Вероятно, в этом случае срабатывает правило из "httpd.conf". Очень похоже на ошибку в написании запроса. Нужно убедиться, что в одном из URL нет, к примеру, кириллических символов. Самый верный способ: заново аккуратно набрать "freebsd-13.loc" в хостах (после "template-html5.loc", чтобы знать, что хост отдаётся не по дефолтному правилу) и скопировать его затем в адресную строку браузера (тогда хосты точно совпадут). |