LINUX.ORG.RU

Lighttpd как reverse proxy для MeshCentral

 , , ,


0

1

Тут появилась необходимость реализовать reverse proxy на основе Lighttp, документации есть пример для Nginx не очень понятно как его переложить на конфигурацию lightthpd

#  Allows websockets over HTTPS.
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
   proxy_set_header Host $host;
 # Inform MeshCentral about the real host, port and protocol
   proxy_set_header X-Forwarded-Host $host:$server_port;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
$HTTP["host"] =~ "mesh\.site\.ru$" {
                $SERVER["socket"] == ":443" {
                ssl.engine = "enable"
                ssl.pemfile ="/etc/acme/ai.site.ru/ai.site.ru.cer"
                ssl.privkey ="/etc/acme/ai.site.ru/ai.site.ru.key"
                proxy.server = ( "" => ( ( "host" => "10.9.9.13", "port" => "443" ) ) )
		??????????????????????????????
        }
}

Нет, не так. Сначала нужно проверить наличие нужного модуля в списке:

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

В конфиге допускается несколько раз указывать списки, но последующие должны быть с конкатацией (+=).

Проксирование:

$SERVER["socket"] == ":443" {
        ssl.engine  = "enable"
        ssl.cipher-list = "HIGH"
        $HTTP["host"] == "example.com" {
            ssl.pemfile = "/cert.pem"                                 
            ssl.privkey = "/privkey.pem"                              
            ssl.ca-file = "/fullchain.pem"
            proxy.balance = "hash"
            proxy.server = ( "" => (( "host" => "localhost", "port" => 3000 ) ))
        }
}
$SERVER["socket"] == ":80" {
        $HTTP["host"] == "example.com" {
            url.redirect = ("^/(.*)" => "https:/example.com/$1")
        }
}

SSL не описывал. Если надо, могу попытаться вспомнить гайд, по которому делал, там два файлика объединяются командой в fullchain.pem.

InterVi ★★★★
()