Pull to refresh

Собираем супервебморду средствами lighttpd 1.4.x

Reading time2 min
Views4.9K
К написанию, данного хабратопика, меня сподвиг вот этот пост.

Итак нам надо получить доступ ко всем домашним девайсам с вебмордами например с работы из корпоративной сети, где доступ разрешен только на стандартный 80 порт, пусть это будет WEB камера (10.0.1.3), вебморда geexbox (10.0.1.4) и ADSL маршрутизатор через который мы получаем IPTV (10.0.1.5:8080).

Что у нас есть:
Сервер с lighttpd в датацентре находящейся где-то далеко-далеко от нашего дома.
Небольшая локалка охватывающая всю квартиру с Cisco 8xx на границе и статическим внешнем IP (62.213.122.2).

Этап первый — выводим наши вебморды за NAT.

Заходим на наш маршрутизатор и в конфигурационном терминале набираем приблизительно следующее:

ip nat inside source static tcp 10.0.1.3 80 interface Virtual-PPP1 8081
ip nat inside source static tcp 10.0.1.4 80 interface Virtual-PPP1 8082
ip nat inside source static tcp 10.0.1.5 8080 interface Virtual-PPP1 8083


Формат команды следующий «ip nat inside source static <протокол> <Внутренний IP> <порт> interface <внешний интерфейс маршрутизатора> <внешний порт>»

Теперь можно перейти ко второму этапу — настройке lighttpd.

Этап второй — настройка lighttpd.

Для притворения нашего хитрого плана в жизнь нам понадобится mod_proxy из стандартной поставки lighttpd. Добавим его в server.modules:

server.modules = (
"mod_access",
"mod_accesslog",
"mod_proxy"
)

И приступим к настройке наших виртуалхостов:

$HTTP["host"] =~ "(^|\.)cam\.habrahabr\.ru$" { #домен
proxy.server = ("" => ( ( #все запросы отправляем на внешний сервер
"host" => "62.213.122.2", # IP сервера
"port" => 8081 ) ) ) # порт
accesslog.filename = "/var/log/lighttpd/camera.log" # куда будем писать логи
}

$HTTP["host"] =~ "(^|\.)geexbox\.habrahabr\.ru$" {
proxy.server = ("" => ( (
"host" => "62.213.122.2",
"port" => 8082 ) ) )
accesslog.filename = "/var/log/lighttpd/geexbox.log"
}

$HTTP["host"] =~ "(^|\.)adsl\.habrahabr\.ru$" {
proxy.server = ("" => ( (
"host" => "62.213.122.2",
"port" => 8083 ) ) )
accesslog.filename = "/var/log/lighttpd/adsl.log"
}


перезапускаем lighttpd и наслаждаемся =)
service lighttpd restart
Tags:
Hubs:
+2
Comments2

Articles