Блог
Обратный прокси на KeeneticOS (NDMS)
Недавно я захотел выдать каждому девайсу с сервисом в моей сети по домену, как это сделать? Можно установить виртуалку с nginx и настроить reverse proxy там, но keenetic подумали о своих пользователях! Зачем ставить nginx за роутером, если на роутере уже есть nginx, подумали они (скорее всего).
Итак, как настроить reverse proxy на роутере keenetic, для начала нам нужно зайти по ssh или telnet в cli роутера (инструкция).
Создаем proxy item, вводим команду и меняем %name% на название приложения или домен 4-го уровня если используется keen-dns (пример для случая с keen-dns: допустим ваш домен pupkin.keenetic.link, тогда при создании записи с именем nas, мы получим адрес nas.pupkin.keenetic.link) или на поддомен для вашего домена. (В этом случае proxy item является поддоменом на уровень выше для адреса который будет указан командой domain static)
ip http proxy %name%
Настраиваем параметры авторизации (внутри будут использоваться логин и пароль пользователей роутера, с разрешенным использованием HTTP proxy)
Включаем basic http авторизацию:
auth
Выключаем basic http авторизацию
no auth
Следующий параметр тоже отвечает за авторизацию, но непосредственно в форме входа для управления роутером
Включаем авторизацию через интерфейс роутера
security-level private
Выключаем авторизацию через интерфейс роутера
security-level public
Задаем домен для приложения
Автоматически подтянуть домен 4-го уровня из keen-dns
domain ndns
Задай свой собственный домен (замените %domain% на свой домен)
domain static %domain%
Настраиваем proxy
Перенаправить http домен на %ip% и %порт%
upstream http %ip% %port%
Перенаправить https домен на %ip% и %порт%
upstream https %ip% %port%
Примеры:
Авторизуемся в cli роутера и вводим команды по очереди:
Пример настройки для проброса медиа сервера emby из внутренней сети через домен keendns (допустим ваше имя keendns - pupkin.keenetic.link) с предварительной авторизацией через учетную запись роутера по протоколу http на конечном сервере
ip http proxy emby
auth
security-level public
domain ndns
upstream http 192.168.1.100 80
На выходе получим рабочий сервис по адресу https://emby.pupkin.keenetic.link
Пример настройки для сайта www.somedomain.ru без авторизации учетной записью роутера по протоколу https на конечном сервере
ip http proxy www
no auth
security-level public
domain static somedomain.ru
upstream https 192.168.1.100 443
На выходе получим рабочий сайт по адресу https://www.somedomain.ru
Аналогичный пример для сайта somedomain.ru только без www
ip http proxy somedomain
no auth
security-level public
domain static ru
upstream https 192.168.1.100 443
На выходе получим рабочий сайт по адресу https://www.somedomain.ru