Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Како да подесим ОпенЛитеСпеед да обрне прокси на Нектцлоуд на интерној мрежи?

Изненађујуће, претрага на Хабре за ОпенЛитеСпеед не даје ништа! Журим да исправим ову неправду, јер је ЛСВС пристојан веб сервер. Волим га због његове брзине и фенси интерфејса за веб администрацију:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Иако је ОпенЛитеСпеед најпознатији као ВордПресс „акцелератор“, у данашњем чланку ћу показати његову прилично специфичну употребу. Наиме, обрнуто прокиирање захтева (реверсе проки). Кажете да је чешће користити нгинк за ово? сложићу се. Али толико боли да смо се заљубили у ЛСВС!

Прокси је у реду, али где? У не мање дивној услузи - Нектцлоуд. Користимо Нектцлоуд за креирање приватних „облака за дељење датотека“. За сваког клијента додељујемо посебан ВМ са Нектцлоуд-ом и не желимо да их излажемо „напољу“. Уместо тога, ми проксијемо захтеве преко заједничког обрнутог проксија. Ово решење омогућава:
1) уклоните сервер на коме се чувају подаци о клијенту са Интернета и
2) сачувајте ИП адресе.

Дијаграм изгледа овако:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Јасно је да је шема поједностављена, јер организација инфраструктуре веб сервиса није тема данашњег чланка.

Такође у овом чланку ћу изоставити инсталацију и основну конфигурацију нектцлоуда, поготово што на Хабре-у постоје материјали на ову тему. Али свакако ћу показати подешавања без којих Нектцлоуд неће радити иза проксија.

Дато:
Нектцлоуд је инсталиран на хосту 1 и конфигурисан да ради преко хттп (без ССЛ-а), има само интерфејс локалне мреже и „сиву“ ИП адресу 172.16.22.110.
Хајде да конфигуришемо ОпенЛитеСпеед на хосту 2. Има два интерфејса, екстерни (изгледа на Интернет) и интерни са ИП адресом на мрежи 172.16.22.0/24
ИП адреса спољног интерфејса хоста 2 је ДНС име цлоуд.цоннецт.линк

Задатак:
Преузмите са Интернета преко везе 'https://cloud.connect.link' (ССЛ) на Нектцлоуд на интерној мрежи.

  • Инсталирање ОпенЛитеСпеед-а на Убунту 18.04.2.

Хајде да додамо спремиште:

вгет -О http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh |судо басх
судо апт-гет упдате

инсталирај, покрени:

судо апт-гет инсталл опенлитеспеед
судо /уср/лоцал/лсвс/бин/лсвсцтрл старт

  • Минимално подешавање заштитног зида.

    судо уфв дозволи ссх
    судо уфв подразумевано дозволи одлазни
    судо уфв дефаулт дени долазни
    судо уфв аллов хттп
    судо уфв дозволи хттпс
    судо уфв дозволити од ваш домаћин управљања на било који порт 7080
    судо уфв омогућити

  • Подесите ОпенЛитеСпеед као обрнути прокси.
    Хајде да направимо директоријуме под виртуелним хостом.

    цд /уср/лоцал/лсвс/
    судо мкдирц цлоуд.цоннецт.линк
    цд цлоуд.цоннецт.линк/
    судо мкдир {цонф,хтмл,логс}
    судо цховн лсадм:лсадм ./цонф/

Хајде да конфигуришемо виртуелни хост са ЛСВС веб интерфејса.
Отворите управљање УРЛ-овима http://cloud.connect.link:7080
Подразумевана пријава/лозинка: админ/123456

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Додајте виртуелни хост (Виртуелни домаћини > Додај).
Приликом додавања појавиће се порука о грешци - недостаје конфигурациона датотека. Ово је нормално, решава се кликом на Кликните за креирање.

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

На картици Опште наведите корен документа (иако није потребан, конфигурација неће успети без њега). Име домена, ако није наведено, биће преузето из имена виртуелног хоста, које смо назвали нашим именом домена.

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Сада је време да се сетимо да немамо само веб сервер, већ и обрнути прокси. Следећа подешавања ће рећи ЛСВС-у шта да прокси и где. У подешавањима виртуелног хоста отворите картицу Екстерна апликација и додајте нову апликацију типа веб сервера:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Наведите име и адресу. Можете одредити произвољно име, али морате га запамтити, добро ће вам доћи у наредним корацима. Адреса је она на којој Нектцлоуд живи у интерној мрежи:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

У истим подешавањима виртуелног хоста, отворите картицу Контекст и креирајте нови контекст типа проксија:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Наведите параметре: УРИ = /, Веб сервер = нектцлоуд_1 (име из претходног корака)

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Поново покрените ЛСВС. Ово се ради једним кликом са веб интерфејса, чуда! (у мени говори наследни носач миша)

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија
Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

  • Стављамо сертификат, конфигуришемо хттпс.
    Поступак за добијање сертификата ми ћемо га изоставити, сложити се да га већ имамо и лежимо са кључем у /етц/летсенцрипт/ливе/цлоуд.цоннецт.линк директоријуму.

Хајде да направимо „слушалац“ (Слушаоци > Додај), назовимо га „хттпс“. Усмерите га на порт 443 и имајте на уму да ће бити безбедан:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

На картици ССЛ наведите путању до кључа и сертификата:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

„Слушалац“ је креиран, сада ћемо му у одељку Мапирања виртуелних хостова додати наш виртуелни хост:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Ако ЛСВС користи само једну услугу, конфигурација се може завршити. Али планирамо да га користимо за слање захтева на различите „инстанце“ у зависности од назива домена. И сви домени ће имати своје сертификате. Због тога морате да одете на конфигурацију виртуелног хоста и поново наведете његов кључ и сертификат на картици ССЛ. У будућности, то би требало да се уради за сваки нови виртуелни хост.

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Остаје да се конфигурише преписивање УРЛ-а тако да се хттп захтеви адресирају на хттпс.
(Успут, када ће се ово завршити? Време је да прегледачи и други софтвер подразумевано пређу на хттпс, и да ручно проследе на но-ССЛ ако је потребно).
Укључите Омогући поновно писање и напишите правила поновног писања:

РевритеЦонд %{СЕРВЕР_ПОРТ} 80
РевритеРуле ^ (. *) $ https://%{SERVER_NAME}%{REQUEST_URI} [Р=301,Л]

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Због чудног неспоразума, немогуће је применити правила Реврите уз уобичајено Грацефул рестарт. Стога ћемо поново покренути ЛСВС не грациозно, већ грубо и ефикасно:

судо системцтл рестарт лсвс.сервице

Да би сервер слушао порт 80, хајде да направимо други слушалац. Назовимо га хттп, наведите 80. порт и да неће бити безбедан:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

По аналогији са хттпс поставком слушаоца, хајде да прикључимо наш виртуелни хост на њега.

Сада ће ЛСВС слушати порт 80 и са њега слати захтеве на 443, преправљајући урл.
У закључку, препоручујем да смањите ниво ЛСВС евиденције, који је подразумевано подешен на Отклањање грешака. У овом режиму, трупци се множе брзином муње! У већини случајева довољан је ниво упозорења. Идите на Конфигурација сервера > Дневник:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Ово завршава конфигурацију ОпенЛитеСпеед-а као обрнутог проксија. Још једном, поново покрените ЛСВС, пратите везу https://cloud.connect.link и видимо:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Да би нас Нектцлоуд пустио унутра, морамо додати домен цлоуд.цоннецт.линк на листу поузданих. Идемо да уредимо цонфиг.пхп. Аутоматски сам инсталирао Нектцлоуд када сам инсталирао Убунту и конфигурација се налази овде: /вар/снап/нектцлоуд/цуррент/нектцлоуд/цонфиг.
Додајте параметар 'цлоуд.цоннецт.линк' кључу трустед_домаинс:

'трустед_домаинс' =>
низ (
0 => '172.16.22.110',
1 => 'цлоуд.цоннецт.линк',
),

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Даље, у истој конфигурацији морате навести ИП адресу нашег проксија. Скрећем вам пажњу да адреса мора бити наведена она која је видљива Нектцлоуд серверу, тј. ИП локалног ЛСВС интерфејса. Без овог корака, Нектцлоуд веб интерфејс ради, али апликације нису овлашћене.

'трустед_прокиес' =>
низ (
0 => '172.16.22.100',
),

Одлично, након тога можемо ући у интерфејс за ауторизацију:

Нектцлоуд унутар и изван ОпенЛитеСпеед-а: подешавање обрнутог проксија

Проблем решен! Сада сваки клијент може безбедно да користи „облак датотека“ на свом личном УРЛ-у, сервер са фајловима је одвојен од интернета, будући клијенти ће све добијати исто и неће утицати ни на једну додатну ИП адресу.
Поред тога, можете користити обрнути прокси за испоруку статичког садржаја, али у случају Нектцлоуд-а, ово неће дати приметно повећање брзине. Дакле, то је опционо и опционо.

Драго ми је да поделим ову причу, надам се да ће некоме бити од користи. Ако знате елегантније и ефикасније методе за решавање проблема, бићу вам захвалан на коментарима!

Извор: ввв.хабр.цом

Додај коментар