OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Ішкі желідегі Nextcloud проксиді кері қайтару үшін OpenLiteSpeed ​​қалай орнатуға болады?

Бір қызығы, Habré-де OpenLiteSpeed ​​іздеу ештеңе бермейді! Мен бұл әділетсіздікті түзетуге асығамын, өйткені LSWS – лайықты веб-сервер. Мен оны жылдамдығы мен әдемі веб-әкімшілік интерфейсі үшін жақсы көремін:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

OpenLiteSpeed ​​WordPress «үдеткіші» ретінде ең танымал болса да, бүгінгі мақалада мен оның нақты қолданылуын көрсетемін. Атап айтқанда, сұраулардың кері проксиі (кері прокси). Сіз бұл үшін nginx пайдалану жиірек екенін айтасыз ба? Мен келісемін. Бірақ LSWS-ге ғашық болғанымыз соншалықты ауырады!

Проксиге жіберу жақсы, бірақ қайда? Бұдан кем емес тамаша қызметте - Nextcloud. Жеке «файлдарды ортақ пайдалану бұлттарын» жасау үшін Nextcloud пайдаланамыз. Әрбір клиент үшін біз Nextcloud көмегімен бөлек VM бөлеміз және біз оларды «сыртқа» көрсеткіміз келмейді. Оның орнына біз жалпы кері прокси арқылы прокси сұрауларын жасаймыз. Бұл шешім мүмкіндік береді:
1) Интернеттен клиент деректері сақталған серверді жою және
2) ip-адрестерді сақтау.

Схема келесідей:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Схема жеңілдетілгені анық, өйткені веб-қызметтердің инфрақұрылымын ұйымдастыру бүгінгі мақаланың тақырыбы емес.

Сондай-ақ, осы мақалада мен келесі бұлтты орнатуды және негізгі конфигурациясын өткізбеймін, әсіресе Хабреде осы тақырып бойынша материалдар бар болғандықтан. Бірақ мен міндетті түрде параметрлерді көрсетемін, онсыз Nextcloud проксидің артында жұмыс істемейді.

Берілгендер:
Nextcloud 1-хостта орнатылған және http арқылы жұмыс істеуге конфигурацияланған (SSL жоқ), тек жергілікті желі интерфейсі және 172.16.22.110 "сұр" IP мекенжайы бар.
OpenLiteSpeed ​​2-хостында конфигурациялайық. Оның екі интерфейсі бар, сыртқы (интернетке қарайды) және ішкі желідегі IP мекенжайы 172.16.22.0/24
Хост 2 сыртқы интерфейсінің IP мекенжайы DNS атауы cloud.connect.link болып табылады

Сынақ:
' сілтемесі арқылы Интернеттен алыңызhttps://cloud.connect.link' (SSL) ішкі желідегі Nextcloud.

  • Ubuntu 18.04.2 жүйесінде OpenLiteSpeed ​​орнату.

Репозиторийді қосамыз:

wget -О http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh |sudo bash
sudo apt-get жаңарту

орнату, іске қосу:

sudo apt-get орнату openlitespeed
sudo /usr/local/lsws/bin/lswsctrl бастау

  • Ең аз брандмауэр орнату.

    sudo ufw рұқсат ssh
    sudo ufw әдепкі шығысқа рұқсат береді
    sudo ufw әдепкі кірісті қабылдамайды
    sudo ufw http-ге рұқсат береді
    sudo ufw рұқсатhttps
    sudo ufw рұқсат береді басқару хостыңыз кез келген 7080 портына
    sudo ufw enable

  • OpenLiteSpeed-ті кері прокси ретінде орнатыңыз.
    Виртуалды хост астында каталогтарды жасайық.

    cd /usr/local/lsws/
    sudo mkdirc cloud.connect.link
    cd cloud.connect.link/
    sudo mkdir {conf,html,logs}
    sudo chown lsadm:lsadm ./conf/

LSWS веб-интерфейсінен виртуалды хостты конфигурациялайық.
URL басқаруын ашыңыз http://cloud.connect.link:7080
Әдепкі логин/пароль: admin/123456

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Виртуалды хост қосыңыз (Виртуалды хосттар > Қосу).
Қосу кезінде қате туралы хабар пайда болады - конфигурация файлы жоқ. Бұл қалыпты жағдай, жасау үшін басыңыз.

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Жалпы қойындысында Құжат түбірін көрсетіңіз (ол қажет болмаса да, конфигурация онсыз өшірілмейді). Домен атауы, егер көрсетілмесе, біз домендік атымызды атаған Виртуалды хост атынан алынады.

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Енді бізде тек веб-сервер емес, кері прокси бар екенін есте ұстайтын кез келді. Келесі параметрлер LSWS-ке нені және қайда прокси қою керектігін айтады. Виртуалды хост параметрлерінде Сыртқы қолданба қойындысын ашыңыз және веб-сервер түріндегі жаңа қолданбаны қосыңыз:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Аты мен мекенжайын көрсетіңіз. Сіз ерікті атауды көрсете аласыз, бірақ оны есте сақтау керек, ол келесі қадамдарда пайдалы болады. Мекенжай - Nextcloud ішкі желіде тұратын мекенжай:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Сол виртуалды хост параметрлерінде Мәтінмән қойындысын ашыңыз және прокси түрінің жаңа контекстін жасаңыз:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Параметрлерді көрсетіңіз: URI = /, веб-сервер = nextcloud_1 (алдыңғы қадамдағы атау)

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

LSWS қайта іске қосыңыз. Бұл веб-интерфейстен бір рет басу арқылы жасалады, кереметтер! (тұқым қуалайтын тышқан тасымалдаушы менде сөйлейді)

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату
OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

  • Біз сертификатты қоямыз, https конфигурациялаймыз.
    Сертификат алу тәртібі біз оны өткізіп жібереміз, оның бізде бар екеніне келісеміз және /etc/letsencrypt/live/cloud.connect.link каталогында кілтпен жатамыз.

«Тыңдаушы» жасайық (Тыңдаушылар > Қосу), оны «https» деп атаймыз. Оны 443 портқа бағыттаңыз және оның қауіпсіз болатынын ескеріңіз:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

SSL қойындысында кілт пен сертификатқа жолды көрсетіңіз:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

«Тыңдаушы» жасалды, енді виртуалды хостты салыстыру бөлімінде біз оған виртуалды хостты қосамыз:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Егер LSWS тек бір қызметке прокси-серверді қосса, конфигурацияны аяқтауға болады. Бірақ біз оны домендік атқа байланысты әртүрлі «даналарға» сұрау жіберу үшін пайдалануды жоспарлап отырмыз. Және барлық домендердің өз сертификаттары болады. Сондықтан виртуалды хост конфигурациясына өтіп, оның кілті мен сертификатын SSL қойындысында қайтадан көрсету керек. Болашақта бұл әрбір жаңа виртуалды хост үшін жасалуы керек.

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

http сұраулары https мекенжайына жіберілетіндей URL қайта жазуды конфигурациялау қалады.
(Айтпақшы, бұл қашан аяқталады? Браузерлердің және басқа бағдарламалық жасақтаманың әдепкі бойынша https-қа өту уақыты келді, ал қажет болса, SSL жоқ параметріне қолмен жібереді).
Қайта жазуды қосу және қайта жазу ережелерін жазу мүмкіндігін қосыңыз:

RewriteCond %{SERVER_PORT} 80
Қайта жазу ережесі ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Біртүрлі түсінбеушілікке байланысты қайта жазу ережелерін әдеттегі Graceful қайта іске қосу арқылы қолдану мүмкін емес. Сондықтан біз LSWS-ті әсем емес, өрескел және тиімді қайта іске қосамыз:

sudo systemctl lsws.service қайта іске қосыңыз

Серверді 80 портты тыңдау үшін басқа тыңдаушыны жасайық. Оны http деп атаймыз, 80-ші портты көрсетіңіз және ол қауіпсіз емес болады:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Https тыңдаушы параметріне ұқсас, оған виртуалды хостты тіркейік.

Енді LSWS 80-ші портты тыңдайды және одан 443-ке сұрауларды жіберіп, URL мекенжайын қайта жазады.
Қорытындылай келе, әдепкі бойынша Debug параметріне орнатылған LSWS журналын тіркеу деңгейін төмендетуді ұсынамын. Бұл режимде журналдар найзағай жылдамдығымен көбейеді! Көп жағдайда Ескерту деңгейі жеткілікті. Сервер конфигурациясы > Журналға өтіңіз:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Бұл кері прокси ретінде OpenLiteSpeed ​​конфигурациясын аяқтайды. Тағы бір рет LSWS қайта іске қосыңыз, сілтемені орындаңыз https://cloud.connect.link және қараңыз:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Nextcloud бізге кіруге рұқсат беру үшін сенімді тізімге cloud.connect.link доменін қосу керек. config.php өңдеуге барайық. Мен Ubuntu орнату кезінде Nextcloud-ты автоматты түрде орнаттым және конфигурация мына жерде орналасқан: /var/snap/nextcloud/current/nextcloud/config.
"cloud.connect.link" параметрін сенімді_домендер кілтіне қосыңыз:

'trusted_domains' =>
массив (
0 => '172.16.22.110',
1 => 'cloud.connect.link',
),

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Әрі қарай, сол конфигурацияда сіз біздің проксидің IP мекенжайын көрсетуіңіз керек. Мен сіздің назарыңызды Nextcloud серверіне көрінетін мекенжайды көрсету керек екеніне аударамын, яғни. Жергілікті LSWS интерфейсінің IP. Бұл қадамсыз Nextcloud веб-интерфейсі жұмыс істейді, бірақ қолданбаларға рұқсат етілмейді.

'trusted_proxies' =>
массив (
0 => '172.16.22.100',
),

Керемет, содан кейін авторизация интерфейсіне кіре аламыз:

OpenLiteSpeed ​​ішіндегі және сыртындағы Nextcloud: кері проксиді орнату

Мәселе шешілді! Енді әрбір клиент өзінің жеке URL мекенжайында «файл бұлтын» қауіпсіз пайдалана алады, файлдары бар сервер Интернеттен бөлінген, болашақ клиенттер барлығын бірдей алады және бірде-бір қосымша IP мекенжайы әсер етпейді.
Сонымен қатар, сіз статикалық мазмұнды жеткізу үшін кері проксиді пайдалана аласыз, бірақ Nextcloud жағдайында бұл жылдамдықты айтарлықтай арттырмайды. Сондықтан бұл қосымша және қосымша.

Мен бұл оқиғамен бөліскеніме қуаныштымын, бұл біреуге пайдалы болады деп үміттенемін. Егер сіз мәселені шешудің неғұрлым талғампаз және тиімді әдістерін білсеңіз, мен түсініктемелерге ризамын!

Ақпарат көзі: www.habr.com

пікір қалдыру