Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Hoe kin ik OpenLiteSpeed ​​​​ynstelle om proxy nei Nextcloud op it ynterne netwurk te kearen?

Ferrassend, in sykaksje op Habré foar OpenLiteSpeed ​​​​jouwt neat! Ik haast om dit ûnrjocht te korrigearjen, om't LSWS in fatsoenlike webserver is. Ik hâld derfan foar syn snelheid en fancy interface foar webadministraasje:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Ek al is OpenLiteSpeed ​​​​meast ferneamd as in WordPress "accelerator", yn it hjoeddeiske artikel sil ik jo in nochal spesifyk gebrûk dêrfan sjen litte. Nammentlik reverse proxying fan fersiken (reverse proxy). Jo sizze dat it faker is om nginx hjirfoar te brûken? Ik sil it iens wêze. Mar it docht sa sear dat wy fereale waarden op LSWS!

Proxying is ok, mar wêr? Yn net minder prachtige tsjinst - Nextcloud. Wy brûke Nextcloud om privee "wolken foar dielen fan bestân" te meitsjen. Foar elke klant tawize wy in aparte VM mei Nextcloud, en wy wolle se net "bûten" bleatstelle. Ynstee, wy proxy fersiken fia in mienskiplike reverse proxy. Dizze oplossing lit:
1) fuortsmite de tsjinner dêr't de kliïnt gegevens wurdt opslein fan it ynternet en
2) bewarje ip-adressen.

It diagram sjocht der sa út:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

It is dúdlik dat de regeling is ferienfâldige, omdat organisaasje fan ynfrastruktuer foar webtsjinsten is net it ûnderwerp fan it hjoeddeiske artikel.

Ek yn dit artikel sil ik de ynstallaasje en basiskonfiguraasje fan 'e nextcloud weglitte, foaral om't Habré materialen hat oer dit ûnderwerp. Mar ik sil perfoarst de ynstellingen sjen litte, sûnder hokker Nextcloud net efter in proxy wurket.

Jûn:
Nextcloud is ynstalleare op host 1 en konfigureare om te wurkjen oer http (sûnder SSL), hat allinich in lokale netwurkynterface en in "griis" IP-adres 172.16.22.110.
Litte wy OpenLiteSpeed ​​​​konfigurearje op host 2. It hat twa ynterfaces, ekstern (sjocht nei it ynternet) en yntern mei in IP-adres op it netwurk 172.16.22.0/24
Host 2's eksterne ynterface IP-adres is DNS-namme cloud.connect.link

In taak:
Krij fan it ynternet fia de keppeling 'https://cloud.connect.link' (SSL) nei Nextcloud op it ynterne netwurk.

  • Ynstallaasje fan OpenLiteSpeed ​​​​op Ubuntu 18.04.2.

Litte wy in repository tafoegje:

wget -O http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh | sudo bash
sudo apt-get update

ynstallearje, útfiere:

sudo apt-get install openlitespeed
sudo /usr/local/lsws/bin/lswsctrl start

  • Minimale firewall opset.

    sudo ufw tastean ssh
    sudo ufw standert tastean útgeande
    sudo ufw standert wegerje ynkommende
    sudo ufw tastean http
    sudo ufw tasteanhttps
    sudo ufw tastean fan jo behear host nei elke haven 7080
    sudo ufw enable

  • Stel OpenLiteSpeed ​​​​op as in reverse proxy.
    Litte wy mappen meitsje ûnder de virtualhost.

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

Litte wy de firtuele host konfigurearje fanút de LSWS-webynterface.
Iepenje url behear http://cloud.connect.link:7080
Standert login/wachtwurd: admin/123456

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Foegje in firtuele host ta (Virtual Hosts> Add).
By it tafoegjen sil in flaterberjocht ferskine - it konfiguraasjetriem ûntbrekt. Dit is normaal, oplost troch te klikken Klikje om te meitsjen.

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Spesifisearje yn it ljepblêd Algemien de Dokumintroot (alhoewol't it net nedich is, sil de konfiguraasje net sûnder it ôfnimme). De domeinnamme, as net oantsjutte, sil nommen wurde fan 'e Virtual Host Name, dy't wy ús domeinnamme neamden.

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

No is it tiid om te ûnthâlden dat wy net allinich in webserver hawwe, mar in reverse proxy. De folgjende ynstellings sille LSWS fertelle wat te proxy en wêr. Iepenje yn 'e virtualhost-ynstellingen it ljepblêd Eksterne app en foegje in nije applikaasje ta fan it webservertype:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Spesifisearje de namme en adres. Jo kinne in willekeurige namme opjaan, mar jo moatte it ûnthâlde, it sil fan pas komme yn 'e folgjende stappen. It adres is it adres wêr't Nextcloud yn it ynterne netwurk libbet:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Iepenje yn deselde firtuele hostynstellingen it ljepblêd Kontekst en meitsje in nije kontekst fan it Proxy-type:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Spesifisearje de parameters: URI = /, Webserver = nextcloud_1 (namme fan 'e foarige stap)

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Werstart LSWS. Dit wurdt dien mei ien klik fan 'e webynterface, wûnders! (in erflike mûzedrager sprekt yn my)

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle
Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Litte wy in "harker" meitsje (Listeners> Add), litte wy it "https" neame. Wys it nei poarte 443 en merk op dat it feilich sil wêze:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Spesifisearje yn it ljepblêd SSL it paad nei de kaai en sertifikaat:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

De "harker" is makke, no sille wy yn 'e seksje Virtual Host Mappings ús firtuele host deroan tafoegje:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

As LSWS sil allinne proxy nei ien tsjinst, de konfiguraasje kin foltôge. Mar wy binne fan plan it te brûken om fersiken te stjoeren nei ferskate "ynstânsjes" ôfhinklik fan de domeinnamme. En alle domeinen sille har eigen sertifikaten hawwe. Dêrom moatte jo nei de konfiguraasje fan 'e firtuele host gean en de kaai en sertifikaat opnij oanjaan yn' e SSL-ljepper. Yn 'e takomst moat dit dien wurde foar elke nije firtuele host.

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

It bliuwt om url-herskriuwen te konfigurearjen sadat http-oanfragen rjochte binne oan https.
(By the way, wannear sil dit einigje? It is tiid foar browsers en oare software om standert te gean nei https, en as it nedich is manuell troch te stjoeren nei no-SSL).
Skeakelje Rewrite ynskeakelje en skriuw Rewrite Rules:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Troch in nuver misferstân is it ûnmooglik om Rewrite-regels ta te passen mei de gewoane Graceful-werstart. Dêrom sille wy LSWS opnij starte net sierlik, mar rûch en effisjint:

sudo systemctl werstart lsws.service

Om de tsjinner nei poarte 80 te harkjen, litte wy in oare Listener oanmeitsje. Litte wy it http neame, spesifisearje de 80e poarte en dat it net-feilich sil wêze:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Troch analogy mei de https-harkerynstelling, litte wy ús firtuele host deroan heakje.

No sil LSWS harkje op poarte 80 en fersiken nei 443 stjoere, en de url herskriuwe.
As konklúzje advisearje ik it LSWS-loggingnivo te ferleegjen, dat standert is ynsteld op Debug. Yn dizze modus fermannichfâldigje de logs mei bliksemsnelheid! Foar de measte gefallen is it warskôgingsnivo genôch. Gean nei Serverkonfiguraasje> Logboek:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Dit foltôget de konfiguraasje fan OpenLiteSpeed ​​​​as in reverse proxy. Nochris, start LSWS opnij, folgje de keppeling https://cloud.connect.link en sjoch:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Om Nextcloud ús yn te litten, moatte wy it cloud.connect.link-domein tafoegje oan 'e fertroude list. Litte wy gean bewurkje config.php. Ik ynstalleare Nextcloud automatysk by it ynstallearjen fan Ubuntu en de konfiguraasje is hjir te finen: /var/snap/nextcloud/current/nextcloud/config.
Foegje de parameter 'cloud.connect.link' ta oan de fertroude_domains-kaai:

'trusted_domains' =>
array(
0 => '172.16.22.110',
1 => 'cloud.connect.link',
),

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Fierder moatte jo yn deselde konfiguraasje it IP-adres fan ús proxy opjaan. Ik tekenje jo oandacht op it feit dat it adres moat wurde oantsjutte dat it sichtber is foar de Nextcloud-tsjinner, d.w.s. De IP fan de lokale LSWS ynterface. Sûnder dizze stap wurket de Nextcloud-webynterface, mar applikaasjes binne net autorisearre.

'trusted_proxies' =>
array(
0 => '172.16.22.100',
),

Geweldich, dêrnei kinne wy ​​​​yn 'e autorisaasje-ynterface komme:

Nextcloud binnen en bûten OpenLiteSpeed: omkearde proxying ynstelle

Probleem oplost! No kin elke klant de "bestânwolk" feilich brûke op syn eigen persoanlike url, de tsjinner mei bestannen is skieden fan it ynternet, takomstige kliïnten sille alles itselde krije en net ien ekstra IP-adres wurdt beynfloede.
Derneist kinne jo in omkearde proxy brûke om statyske ynhâld te leverjen, mar yn it gefal fan Nextcloud sil dit gjin merkbere ferheging fan snelheid jaan. Dus it is opsjoneel en opsjoneel.

Ik bin bliid dit ferhaal te dielen, ik hoopje dat it nuttich sil wêze foar ien. As jo ​​mear elegante en effisjinte metoaden witte foar it oplossen fan it probleem, sil ik tankber wêze foar de opmerkingen!

Boarne: www.habr.com

Add a comment