Можно ли построить легкий обратный прокси-сервер на Edgerouter? Я думаю, что это должно быть возможно, так как ОС на маршрутизаторе - Debian. Но после просмотра вопросов / ответов я не нашел ранее записей по этой теме. Кто-нибудь знает об этом - и как?
Я обнаружил, что внутри маршрутизатора есть «диск» 3,8 Гб, и среди прочего, есть debian-utils. В списке нет официального репозитория. Целью преобразования маршрутизатора в обратный прокси-сервер является обработка входящих запросов SSL. На данный момент у нас есть перенаправление с IP-адреса веб-сервера на IP-адреса почты или файлового сервера. Нас беспокоит, что если веб-сервер выйдет из строя, доступ к веб-почте и веб-файлам по SSL не будет работать. Таким образом, мы должны были вставить маршрутизатор между шлюзом USG и серверами - и заставить маршрутизатор / прокси правильно назначать IP-адреса.
Edge Router поставляется в комплекте с Lighttpd. Пока вы не делаете ничего слишком сложного, вы можете переписать файл (ы) конфигурации.
Однако знайте, что маршрутизатор по умолчанию настроен на определенное состояние и, если вы не поняли, перезапишет ваши изменения. Репозиторий mgbowen на Github[1] интеграция сертификации Let's Encrypt - хорошая отправная точка.
Хотя можно установить другие службы, такие как Nginx, если у них есть совместимый mips
пакет и sources.list
обновляется, чтобы отразить это. Конечно, всю конфигурацию придется перестраивать с нуля, если вы хотите использовать что-то другое, кроме Lighttpd.
И прежде чем я уйду слишком далеко от этой темы, я хочу также добавить (и подчеркнуть), что установка приложений с безрассудным игнорированием может превратить ваш роутер в кирпич. Придется достать кабель управления и заново установить прошивку; задача не тривиальная и не для слабонервных!
Сняв эти предостережения, я поделюсь некоторыми фрагментами того, что я сделал.
Lighttpd.conf.patch
--- include "conf-enabled/10-ssl.conf"
+++ # include "conf-enabled/10-ssl.conf" # original
+++ include "conf-enabled/11-ssl.conf" # updated
+++ include "conf-enabled/20-network.conf" # redirects
11-ssl.conf
$SERVER["socket"] == "192.168.1.1:80" {
### Handle the existing 80 to 443 traffic
.
.
.
### Added for personal use:
$HTTP["host"] == "foo.internal.tld" {
proxy.server = ( "" =>
(
( "host" => "192.168.1.1", "port" => <random unused port> )
)
)
}
}
20-network.conf
$SERVER["socket"] == "192.168.1.1:<port defined in 11-ssl.conf>" {
url.rewrite-once = ( "^(?!/gui)(.*)" => "/gui$1" )
proxy.server = ( "" =>
( "" =>
( "host" => "<IP of server running service>", "port" => <port for service> )
)
)
}
НОТА:
Причина перенаправления «порт-порт-порт» связана с версией Lighttpd, доступной в настоящее время, и предлагаемым обходным путем.[2] для переадресации портов.
ССЫЛКА: