Si të konfiguroni OpenLiteSpeed për reverse proxy në Nextcloud, i cili ndodhet në rrjetin e brendshëm?
E habitshme, por kërkimi në Habr për OpenLiteSpeed nuk jep asgjë! Po shpejtoj të korrigjoj këtë padrejtësi, pasi LSWS është një server web i merituar. E dua për shpejtësinë e tij dhe ndërfaqen moderne të menaxhimit:

Megjithatë, edhe pse OpenLiteSpeed është më i njohur si një «accelerator» për WordPress, në artikullin e sotëm do të tregoj një aplikim të tij mjaft specifik. Konkretisht, do të flasim për reverse proxy për kërkesat (reverse proxy). Do të thoni, është më e njohur të përdoret nginx për këtë? Po, do të pranosh. Por ne e duam shumë LSWS!
PĂ«r drejtimin e proxy, po ku? NĂ« njĂ« shĂ«rbim njĂ«soj tĂ« shkĂ«lqyer â Nextcloud. Ne pĂ«rdorim Nextcloud pĂ«r tĂ« krijuar «cloud»-a private pĂ«r ndarjen e skedareve. PĂ«r çdo klient, i japim njĂ« VM tĂ« veçantĂ« me Nextcloud, dhe nuk dĂ«shirojmĂ« t'i ekspozojmĂ« «jashtë». NĂ« vend tĂ« kĂ«saj, ne drejtojmĂ« kĂ«rkesat pĂ«rmes njĂ« reverse proxy tĂ« pĂ«rbashkĂ«t. Ky zgjidhje lejon:
1) të largojmë serverin ku ruhen të dhënat e klientit nga interneti dhe
2) të kursejmë adresat IP.
Skema duket kështu:

E është e qartë se skema është e thjeshtuar, sepse organizimi i infrastrukturës së shërbimeve në internet nuk është tema e këtij artikulli.
Po ashtu, në këtë artikull do të lë jashtë instalimin dhe konfigurimin bazik të Nextcloud, për më tepër që në Habrë ka materiale të dedikuara për këtë temë. Por do të tregoj patjetër konfigurimet, pa të cilat Nextcloud nuk do të funksionojë pas një prokse.
E dhënë:
Nextcloud Ă«shtĂ« instaluar nĂ« hostin 1 dhe Ă«shtĂ« konfiguruar pĂ«r tĂ« punuar nĂ« http (pa SSL), ka vetĂ«m njĂ« ndĂ«rfaqe rrjetĂ« lokale dhe njĂ« IP tĂ« âshkruarâ 172.16.22.110.
Do të konfigurojmë OpenLiteSpeed në hostin 2. Ai ka dy ndërfaqe, një të jashtme (që shikon në internet) dhe një të brendshme me IP-në në rrjetin 172.16.22.0/24.
Emri DNS cloud.connect.link i referohet IP-së së ndërfaqes së jashtme të hostit 2.
Detyra:
TĂ« arrijmĂ« nga interneti pĂ«rmes lidhjes ââ (SSL) nĂ« Nextcloud nĂ« rrjetin e brendshĂ«m.
- Po instalojmë OpenLiteSpeed në Ubuntu 18.04.2.
Shtojmë repozitorin:
wget -O â |sudo bash
sudo apt-get update
instalojmë, e nisim:
sudo apt-get install openlitespeed
sudo /usr/local/lsws/bin/lswsctrl start
- Do ta konfiguroni në minimum firewalin.
sudo ufw allow ssh
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow http
sudo ufw allow https
sudo ufw allow from hosti juaj i menaxhimit to any port 7080
sudo ufw enable - Do ta konfigurojmë OpenLiteSpeed si një proksi të kthyer.
Do të krijojmë direktorët për virtualhost.cd /usr/local/lsws/
sudo mkdir cloud.connect.link
cd cloud.connect.link/
sudo mkdir {conf,html,logs}
sudo chown lsadm:lsadm ./conf/
Të konfiguroni një virtual host nga ndërfaqja e web-it të LSWS.
Hapni menaxhimin e URL-ve
Emri i përdoruesit/ fjalëkalimi parazgjedhur: admin/123456

Shtoni virtual host (Virtual Hosts > Shto).
Kur shtoni, do të shfaqet një mesazh gabimi - mungesa e skedarit të konfigurimit. Kjo është normale dhe zgjidhet duke klikoni Klikoni për të krijuar.

Në skedën 'General', tregoni Document Root (edhe pse nuk do të jetë e nevojshme, pa të konfiguarimi nuk do të ngrihet). Emri i Domain-it, nëse nuk shënohet, do të merret nga Virtual Host Name, i cili e quajtëm me emrin e domain-it tonë.

Tani është koha të kujtojmë se nuk kemi vetëm një server web, por një reverse proxy. Cilësimet e mëposhtme do t'i tregojnë LSWS se çfarë të proksojë dhe ku. Në cilësimet e virtual hostit, hapni skedën 'External App' dhe shtoni një aplikacion të ri lloji Web server:

ShĂ«noni emrin dhe adresĂ«n. Emri mund tĂ« jetĂ« i rastĂ«sishĂ«m, por duhet ta mbani mend, do tĂ« jetĂ« i nevojshĂ«m nĂ« hapat e ardhshĂ«m. Adresa â ajo ku ndodhet Nextcloud nĂ« rrjetin e brendshĂ«m:

Në të njëjtat cilësime të virtual hostit, hapni skedën 'Context' dhe krijoni një kontekst të ri lloji Proxy:

Shënoni parametrat: URI = /, Web server = nextcloud_1 (emri nga hapi i mëparshëm)

Rinisëm LSWS. Kjo bëhet me një klik nga ndërfaqja e internetit, çudira! (në mua flet një trashëgimtar miu)


- Vë një certifikat, rregulloj https.
do ta anashkalojmë, le të pajtohemi se e kemi tashmë dhe ndodhet së bashku me çelësin në drejtorinë /etc/letsencrypt/live/cloud.connect.link.
Do tĂ« krijojmĂ« njĂ« «dĂ«gjues» (Listeners > Add), do ta quajmĂ« «https». Do tâi caktojmĂ« portin 443 dhe do tĂ« shĂ«nojmĂ« se do tĂ« jetĂ« tĂ« Sigurt:

Në seksionin SSL do të shënojmë rrugën për çelësin dhe certifikatën:

«Dëgjuesi» është krijuar, tani në seksionin e Virtual Host Mappings do të shtojmë hostin tonë virtual:

Nëse LSWS do të proksojë vetëm një shërbim, konfigurimi mund të përfundojë. Por ne planifikojmë ta përdorim atë për të përcjellë kërkesat në «instanca» të ndryshme në varësi të emrit të domainit. Dhe të gjitha domainet do të kenë certifikatat e tyre. Prandaj, duhet të shkojmë te konfigurimi i hostit virtual dhe përsëri të caktosh në seksionin SSL çelësin dhe certifikatën e tij. Në të ardhmen, kjo duhet të bëhet për çdo host virtual të ri.

Tani mbetet të rregullojmë ripërshtatjen e url, që kërkesat http të drejtohen në https.
(MegjithatĂ«, kur do tĂ« pĂ«rfundojĂ« kjo? ĂshtĂ« koha qĂ« shfletuesit dhe softuerĂ«t e tjerĂ« tĂ« kalojnĂ« automatikisht nĂ« https, ndĂ«rsa kalimi nĂ« no-SSL tĂ« bĂ«het manualisht kur Ă«shtĂ« e nevojshme).
Aktivizojmë Enable Rewrite dhe shkruajmë Rewrite Rules:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ } [R=301,L]

Të aplikojmë rewrite rules nuk mundet me Graceful restart për një keqkuptim të çuditshëm. Prandaj do ta riparojmë LSWS në një mënyrë të ashpër dhe efektive:
sudo systemctl restart lsws.service
Që serveri të dëgjojë edhe portin 80, do të krijojmë një Listener tjetër. Do ta quajmë http, do të përcaktojmë portin 80 dhe që ai do të jetë jo-Secure:

Në përputhje me konfigurimin e https listener, do të lidhim hostin tonë virtual me të.
Tani LSWS do të dëgjojë portin 80 dhe do të drejtojë kërkesat nga ai në 443, duke riparuar url.
Në përfundim, rekomandoj të ulet niveli i regjistrimit të LSWS, i cili është vendosur si Debug nga e drejta. Në këtë mod, regjistrat shpërndahen me shpejtësi të madhe! Për shumicën e rasteve, niveli Warning është i mjaftueshëm. Shkoni në Server Configuration > Log:

Kështu, konfigurimi i OpenLiteSpeed si një proxy i kundërt përfundon. Përsëri, do të ribashkojmë LSWS, shkojmë në lidhjen dhe shohim:

Për të lejuar Nextcloud, është e nevojshme të shtoni domenin cloud.connect.link në listën e besuar. Le të rregullojmë config.php. Nextcloud e kam instaluar automatikisht gjatë instalimit të Ubuntu dhe konfigurimi ndodhet këtu: /var/snap/nextcloud/current/nextcloud/config.
NĂ« çelĂ«sin trusted_domains shtojmĂ« parametrin âcloud.connect.linkâ:
âtrusted_domainsâ =>
array (
0 => â172.16.22.110â,
1 => âcloud.connect.linkâ,
),

Më pas, në të njëjtën konfigurim duhet të specifikojmë adresën IP të proxy-t tonë. Vërej se adresa duhet të jetë ajo që i duket serverit Nextcloud, pra, IP e interfesit lokal LSWS. Pa këtë hap, funksionon ndërfaqja web e Nextcloud, por aplikacionet nuk autentifikohen.
âtrusted_proxiesâ =>
array (
0 => â172.16.22.100â,
),
Shumë mirë, pas kësaj mund të hyjmë në ndërfaqen e autentifikimit:

Problemi Ă«shtĂ« zgjidhur! Tani çdo klient mund tĂ« pĂ«rdorĂ« me siguri âruajtjen nĂ« cloudâ me URL-nĂ« e tij personale, serveri me skedarĂ« Ă«shtĂ« ndarĂ« nga interneti, klientĂ«t e ardhshĂ«m do tĂ« marrin gjithçka tĂ« njĂ«jtĂ« dhe asnjĂ« adresĂ« IP shtesĂ« nuk do tĂ« dĂ«mtohet.
Shtesë, mund të përdorim një reverse proxy për të ofruar përmbajtje statike, por në rastin e Nextcloud kjo nuk do të sjellë një rritje të ndjeshme të shpejtësisë. Pra, kjo është opsionale dhe sipas dëshirës.
Jam i gĂ«zohem qĂ« ta ndaja kĂ«tĂ« histori, shpresoj se do t'i shĂ«rbejĂ« ndokujt. NĂ«se dini metoda mĂ« delikate dhe mĂ« efektive pĂ«r tĂ« zgjidhur kĂ«tĂ« problem â do tĂ« isha mirĂ«njohĂ«s pĂ«r komentet!
Burimi: habr.com
