Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Apache2 сервер. сброс запросов на несуществующие сайты VirtualHost  (Прочитано 958 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Который раз сталкиваюсь с настройкой виртуал-хостов Apache2.
И опять парюсь. Все, конечно, от непонимания механизма работы.
система ubuntu 18.04 LTS

Задача такая, настроить https://site1.ru:

при заходе на https://site1.ru - выдать https://site1.ru (разумеется)

при попытке зайти на http://site1.ru редирект на https://site1.ru

при попытке зайти на любой http://blabla.bla или https://blabla.bla,
сброс на дефолтный сайт http://site.ru - там где написано что такого сайта нет на серваке.

Я уже и офф.мануал читал и всякие подсказки через конфигурации и .htaccess
но нормального результата добиться не получилось.

Подскажите примеры конфигурации.
Можно без детализации, как модули вкючать выключать и апач перезагружать я в курсе.

Оффлайн MooSE

  • Старожил
  • *
  • Сообщений: 1110
    • Просмотр профиля
Даю подсказку: разберитесь как указывается "дефолтный" виртуальный хост.

Даю подсказку два: посмотрите в сторону <VirtualHost _default_:80>

Даю подсказку три: после того как разберётесь с дефолтным хостом изучайте mod_rewrite

Оффлайн jura12

  • Старожил
  • *
  • Сообщений: 1418
  • 20.04
    • Просмотр профиля
"при попытке зайти на http://site1.ru редирект на https://site1.ru" - вы купите доменное имя, откройте порты 80 и 443 и программой certbot установите конфигурацию для https. она спросит всегда перенаправлять на https или и то и то будет работать.

"при попытке зайти на любой http://blabla.bla или https://blabla.bla,
сброс на дефолтный сайт http://site.ru" - надо иметь ввиду что сайт blabla.bla должен принадлежать вам. тогда командой в конфиге апача для сайта пишите ServerAlias blabla.bla.

как то так.
сопротивление бесполезно

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
надо иметь ввиду что сайт blabla.bla должен принадлежать вам.
Необязательно. Запрос на сайт xxx.com, который мне не принадлежит, направленый моему серверу сгенерировать можно на раз два.
 Доменные имена и сертификат(на одно имя) у меня уже есть. И я их уже поставил на серв.
 
после того как разберётесь с дефолтным хостом изучайте mod_rewrite
Дефолтный то я понимаю, так уже делал. Когда вмешиваются хосты по https, непонятки возникают.
mod_rewrite посмотрим, ок. Спасиб.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Не нужен здесь mod_rewrite. Даже не смотрите на него.

Хост _default_ тоже тут не при чём.
Надо понимать, как именно Апач ищет подходящий под запрос сайт.

1. Если есть IP-bound виртуалхосты и запрос пришёл на один из IP адресов, в первую очередь просматриваются они. Если точного соответствия не нашлось, выбирается первый в списке привязанных(!) сайт и запрос отправляется на него.
2. Если IP-bound хостов нет, или запрос пришёл на другой адрес, просматриваются хосты с пустым адресом ("*", "_default_" - это всё "пустые" адреса), и при отсутствии подходящего сервера запрос отправляется на первый в списке.

Мало назвать виртуалхост _default_, надо ещё чтобы он был первым в списке выбора. Этого достигают, создавая для него линк с именем "000-...conf".

Проверить список(списки!) выбора можно командой `apachectl -S`.

Блокировка и редирект делаются не просто, а очень просто:

<VirtualHost *:80>
ServerName example.org
ServerAlias www.example.org
Redirect permanent / https://www.example.org/
</VirtualHost>

<VirtualHost *:443>
ServerName example.org
Redirect permanent / https://www.example.org/

...SSL config...
</VirtualHost>

<VirtualHost *:443>
ServerName www.example.org

...server config...
...SSL config...
</VirtualHost>
« Последнее редактирование: 25 Марта 2020, 13:50:42 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Не нужен здесь mod_rewrite. Даже не смотрите на него.
Да, я уже понял, когда начал читать.
надо ещё чтобы он был первым в списке выбора. Этого достигают, создавая для него линк с именем "000-...conf".
давно подозревал что названиями можно играться, только явно про апачи конфиги не расписано на просторах гуглопоиска.
Проверить список(списки!) выбора можно командой `apachectl -S`.
видел но никак не мог понять с конца или с начала списка порядок просмотра конфигов сервером.
Понял - с начала  :)
В итоге сделал 4 конфига с названиями 000...conf 001...conf 002...conf 003...conf
Расписал где надо Redirect, и все работает без rewrite.

PS.Спасибо за помощь. Кстати от Вас (AnrDaemon) её и ожидал, почитав ваши старые посты на эту тему.

PPS.

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 25 Марта 2020, 22:52:32 от Schneider »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
сделал 4 конфига с названиями 000...conf 001...conf 002...conf 003...conf
Зачем?

Пользователь добавил сообщение 26 Марта 2020, 00:12:16:
ServerAlias * - это ошибка. Не надо так делать.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
ServerAlias * - это ошибка. Не надо так делать.
А как же без них в этом случае?(с учетом поставленой задачи) не понимаю. поправьте мой конфиг.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Просто уберите. Он не нужен.

Пользователь добавил сообщение 26 Марта 2020, 15:32:06:
поправьте мой конфиг.
Готовый конфиг выше уже привёл.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Schneider

  • Автор темы
  • Участник
  • *
  • Сообщений: 173
    • Просмотр профиля
Готовый конфиг выше уже привёл.
ага, теперь точно разобрался. не думал что это так работает :)

Но.
Цитата: Schneider от 25 Март 2020, 22:10:22
сделал 4 конфига с названиями 000...conf 001...conf 002...conf 003...conf
Зачем?
так в ubuntu конфиги виртуалхостов, каждый в своем файле. только у вас три виртуалхоста, но делает не совсем то, что я планировал.
 В вашем конфиге запросы на непонятные сайты тоже свалятся на https://www.example.org/, а я заглушку отдельную на такие запросы хотел поставить.

Поэтому вот так вот:
(Нажмите, чтобы показать/скрыть)

ServerAlias * - это ошибка. Не надо так делать.
А как же без них в этом случае?(с учетом поставленой задачи) не понимаю. поправьте мой конфиг.
Понял почему. действительно, непонятные запросы и так в первый по списку (он же дефолтный) конфиг сваляться на этом порту

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
я заглушку отдельную на такие запросы хотел поставить
Примените логику. Сами же сказали, что уже поняли, как работает система.

Пользователь добавил сообщение 26 Марта 2020, 18:10:40:
Кстати, соседний топик.
https://forum.ubuntu.ru/index.php?topic=310619.msg2417625#msg2417625
« Последнее редактирование: 26 Марта 2020, 18:10:40 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.042 секунд. Запросов: 25.