Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Kaip nustatyti OpenLiteSpeed, kad tarpinis serveris būtų pakeistas į Nextcloud vidiniame tinkle?

Keista, bet „OpenLiteSpeed“ paieška „Habré“ nieko neduoda! Skubu ištaisyti šią neteisybę, nes LSWS yra geras žiniatinklio serveris. Man tai patinka dėl greičio ir išgalvotos žiniatinklio administravimo sąsajos:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Nors „OpenLiteSpeed“ labiausiai žinomas kaip „WordPress“ greitintuvas, šiandieniniame straipsnyje parodysiu gana konkretų jo panaudojimą. Būtent atvirkštinis užklausų tarpinis serveris (atvirkštinis tarpinis serveris). Sakote, kad dažniau tam naudojamas nginx? sutiksiu. Bet tai taip skaudu, kad mes įsimylėjome LSWS!

Proxy yra gerai, bet kur? Ne mažiau nuostabiu aptarnavimu - Nextcloud. Mes naudojame „Nextcloud“, kad sukurtume privačius „failų bendrinimo debesis“. Kiekvienam klientui su Nextcloud skiriame atskirą VM ir nenorime jų atskleisti „išorėje“. Vietoj to, užklausas perduodame per įprastą atvirkštinį tarpinį serverį. Šis sprendimas leidžia:
1) pašalinti serverį, kuriame saugomi kliento duomenys, iš interneto ir
2) išsaugokite IP adresus.

Diagrama atrodo taip:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Akivaizdu, kad schema supaprastinta, nes interneto paslaugų infrastruktūros organizavimas nėra šiandienos straipsnio tema.

Taip pat šiame straipsnyje praleisiu nextcloud diegimą ir pagrindinę konfigūraciją, ypač todėl, kad Habré turi medžiagos šia tema. Bet aš tikrai parodysiu nustatymus, be kurių Nextcloud neveiks už tarpinio serverio.

Dano:
„Nextcloud“ yra įdiegtas 1 pagrindiniame kompiuteryje ir sukonfigūruotas dirbti per http (be SSL), turi tik vietinio tinklo sąsają ir „pilką“ IP adresą 172.16.22.110.
Sukonfigūruokime „OpenLiteSpeed“ 2 pagrindiniame kompiuteryje. Jis turi dvi sąsajas: išorinę (atrodo į internetą) ir vidinę su IP adresu tinkle 172.16.22.0/24
2 pagrindinio kompiuterio išorinės sąsajos IP adresas yra DNS pavadinimas cloud.connect.link

Užduotis:
Gaukite iš interneto per nuorodą "https://cloud.connect.link“ (SSL) į Nextcloud vidiniame tinkle.

  • „OpenLiteSpeed“ diegimas Ubuntu 18.04.2.

Pridėkime saugyklą:

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

įdiegti, paleisti:

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

  • Minimalus ugniasienės nustatymas.

    sudo ufw leisti ssh
    sudo ufw pagal nutylėjimą leidžia išeinančius
    sudo ufw pagal nutylėjimą uždrausti gaunamus
    sudo ufw leisti http
    sudo ufw leisti https
    sudo ufw leisti iš jūsų valdymo šeimininkas į bet kurį prievadą 7080
    sudo ufw įgalinti

  • Nustatykite „OpenLiteSpeed“ kaip atvirkštinį tarpinį serverį.
    Sukurkime katalogus virtualioje priegloboje.

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

Sukonfigūruokime virtualųjį pagrindinį kompiuterį iš LSWS žiniatinklio sąsajos.
Atidaryti URL valdymą http://cloud.connect.link:7080
Numatytasis prisijungimo vardas / slaptažodis: admin/123456

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Pridėkite virtualų pagrindinį kompiuterį (Virtual Hosts > Add).
Pridedant pasirodys klaidos pranešimas – trūksta konfigūracijos failo. Tai normalu, išspręsta spustelėjus Spustelėkite, kad sukurtumėte.

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Skirtuke „Bendra“ nurodykite dokumento šaknį (nors ir nereikia, konfigūracija be jos neatsiras). Domeno vardas, jei nenurodytas, bus paimtas iš virtualaus pagrindinio kompiuterio vardo, kurį pavadinome savo domeno pavadinimu.

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Dabar atėjo laikas prisiminti, kad turime ne tik žiniatinklio serverį, bet ir atvirkštinį tarpinį serverį. Šie nustatymai nurodys LSWS, ką ir kur perduoti. „Virtualhost“ nustatymuose atidarykite skirtuką „Išorinė programa“ ir pridėkite naują žiniatinklio serverio tipo programą:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Nurodykite vardą ir adresą. Galite nurodyti savavališką pavadinimą, bet turite jį atsiminti, jis bus naudingas atliekant kitus veiksmus. Adresas yra tas, kuriame Nextcloud gyvena vidiniame tinkle:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Tais pačiais virtualiosios prieglobos nustatymuose atidarykite skirtuką Kontekstas ir sukurkite naują tarpinio serverio tipo kontekstą:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Nurodykite parametrus: URI = /, žiniatinklio serveris = nextcloud_1 (pavadinimas iš ankstesnio veiksmo)

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Iš naujo paleiskite LSWS. Tai daroma vienu paspaudimu iš žiniatinklio sąsajos, stebuklai! (manyje kalba paveldimas pelės nešiotojas)

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas
Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

  • Įdedame sertifikatą, sukonfigūruojame https.
    Pažymėjimo gavimo tvarka mes jį praleisime, susitarsime, kad jau turime ir gulime su raktu /etc/letsencrypt/live/cloud.connect.link kataloge.

Sukurkime „klausytoją“ (Listeners > Add), pavadinkime jį „https“. Nukreipkite jį į 443 prievadą ir atkreipkite dėmesį, kad jis bus saugus:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Skirtuke SSL nurodykite kelią į raktą ir sertifikatą:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

„Klausytojas“ buvo sukurtas, dabar skiltyje „Virtual Host Mappings“ prie jo pridėsime savo virtualųjį prieglobą:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Jei LSWS įgaliotasis serveris naudos tik vieną paslaugą, konfigūraciją galima užbaigti. Bet mes planuojame jį naudoti norėdami siųsti užklausas įvairiems „atvejams“, priklausomai nuo domeno vardo. Ir visi domenai turės savo sertifikatus. Todėl turite eiti į virtualhost konfigūraciją ir SSL skirtuke dar kartą nurodyti jo raktą ir sertifikatą. Ateityje tai turėtų būti daroma kiekvienam naujam virtualiam kompiuteriui.

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Belieka sukonfigūruoti url perrašymą taip, kad http užklausos būtų skirtos https.
(Beje, kada tai baigsis? Laikas naršyklėms ir kitai programinei įrangai pagal numatytuosius nustatymus pereiti prie https ir, jei reikia, rankiniu būdu persiųsti į no-SSL).
Įjunkite Įgalinti perrašyti ir rašyti perrašymo taisykles:

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

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Dėl keisto nesusipratimo neįmanoma taikyti Perrašymo taisyklių naudojant įprastą Graceful restart. Todėl LSWS iš naujo paleisime ne grakščiai, o grubiai ir efektyviai:

sudo systemctl iš naujo paleiskite lsws.service

Kad serveris klausytų 80 prievado, sukurkime kitą klausytoją. Pavadinkime jį http, nurodykime 80-ąjį prievadą ir kad jis bus nesaugus:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Analogiškai su https klausytojo nustatymu, prijunkite prie jo savo virtualų pagrindinį kompiuterį.

Dabar LSWS klausys 80 prievado ir iš jo siųs užklausas į 443, perrašydamas URL.
Apibendrinant, rekomenduoju sumažinti LSWS registravimo lygį, kuris pagal numatytuosius nustatymus nustatytas kaip Debug. Šiuo režimu rąstai dauginasi žaibo greičiu! Daugeliu atvejų pakanka įspėjimo lygio. Eikite į Serverio konfigūracija > Žurnalas:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Tai užbaigia „OpenLiteSpeed“ kaip atvirkštinio tarpinio serverio konfigūraciją. Dar kartą paleiskite LSWS iš naujo, sekite nuorodą https://cloud.connect.link ir matyti:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Kad „Nextcloud“ leistų mus įeiti, į patikimų sąrašą turime įtraukti domeną cloud.connect.link. Eikime redaguoti config.php. „Nextcloud“ įdiegiau automatiškai, kai įdiegiau „Ubuntu“, o konfigūracija yra čia: /var/snap/nextcloud/current/nextcloud/config.
Pridėkite parametrą „cloud.connect.link“ prie rakto trusted_domains:

'trusted_domains' =>
masyvas (
0 => '172.16.22.110',
1 => 'Cloud.connect.link',
),

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Be to, toje pačioje konfigūracijoje turite nurodyti mūsų tarpinio serverio IP adresą. Atkreipiu dėmesį, kad adresas turi būti nurodytas toks, kurį mato Nextcloud serveris, t.y. Vietinės LSWS sąsajos IP. Be šio veiksmo „Nextcloud“ žiniatinklio sąsaja veikia, tačiau programos nėra įgaliotos.

'trusted_proxy' =>
masyvas (
0 => '172.16.22.100',
),

Puiku, po to galime patekti į autorizacijos sąsają:

Nextcloud OpenLiteSpeed ​​viduje ir išorėje: atvirkštinio tarpinio serverio nustatymas

Problema išspręsta! Dabar kiekvienas klientas gali saugiai naudotis „failų debesimi“ savo asmeniniame url, serveris su failais yra atskirtas nuo interneto, būsimi klientai gaus viską taip pat ir nenukentės nei vienas papildomas IP adresas.
Be to, statiniam turiniui pateikti galite naudoti atvirkštinį tarpinį serverį, tačiau „Nextcloud“ atveju tai nepadidins pastebimo greičio. Taigi tai neprivaloma ir neprivaloma.

Džiaugiuosi galėdamas pasidalinti šia istorija, tikiuosi, kad ji kam nors bus naudinga. Jei žinote daugiau elegantiškų ir efektyvesnių problemos sprendimo būdų, būsiu dėkingas už komentarus!

Šaltinis: www.habr.com

Добавить комментарий