1

Прежде всего, позвольте мне извиниться, если это слишком простой вопрос. Я уверен, что это так, но моя главная проблема в том, что я не знаю точной терминологии, которую можно использовать для поиска ответа.

В течение последних нескольких лет я управлял домашним сервером, чтобы предоставить мне несколько услуг; а именно Plex, Owncloud(недавно измененный на Nextcloud), сервер Webmin для предоставления графического интерфейса и небольшой почтовый сервер исключительно для предоставления мне обновлений системных уведомлений.

До сих пор я обращался ко всему, просто используя ip сервера, за которым следовало либо имя службы (например, в случае Nextcloud, я просто перехожу на https://192.168.1.50/nextcloud) или порт (webmin - https://192.168.1.50:10000 а Plex - https://192.168.50:32400)

Я хотел использовать bind9 для настройки DNS-сервера, который позволил бы мне получить доступ ко всему по доменному имени, а не по его IP-адресу, и, имея сегодня несколько часов для себя, я укусил пулю и начал.

У меня сам DNS-сервер работает нормально. Со своего ноутбука я могу ubuntuserver (имя хоста моего сервера) или ubuntuserver.local.ftb , где local.ftb - это выбранный мной домен.

Обратите внимание, что это не предназначено для доступа за пределами моей локальной сети, это исключительно внутренняя настройка.

Я также настроил записи DNS для webmin.ubuntuserver.local.ftb , nextcloud.ubuntuserver.local.ftb и plex.ubuntuserver.local.ftb и они указывают на мой главный сервер 192.168.1.50

У меня вопрос, могу ли я настроить Apache таким образом, чтобы указать https://webmin.ubuntuserver.local.ftb на https://192.168.1.50:10000 , https://nextcloud.ubuntuserver.local.ftb на https://192.168.1.50/nextcloud и https://plex.ubuntuserver.local.ftb to https://192.168.1.50:32400? Я предполагаю, что это перенаправление не будет обрабатываться DNS-сервером, поскольку, похоже, он не работает с портами, но возможно ли это с Apache?

1 ответ1

0

Да, Apache, а также Nginx поддерживают "обратное проксирование", где вы можете направлять запросы на основе всего VirtualHost (заголовка Host запроса) или даже только определенных путей. Посмотрите директиву ProxyPass .

(Обратите внимание, что клиенты подключаются только к Apache, т.е. к внешнему интерфейсу - порты отдельных служб не должны быть доступны извне.)

Другой вариант, исключающий подключения TLS (но не обязательно HTTPS), заключается в маршрутизации на основе имени хоста в поле SNI TLS. Haproxy, Nginx, stunnel и sniproxy способны на это - я использовал их для одновременного использования порта между HTTPS и IRC-SSL.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .