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:
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:
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.
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
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.
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.
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ą:
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:
Tais pačiais virtualiosios prieglobos nustatymuose atidarykite skirtuką Kontekstas ir sukurkite naują tarpinio serverio tipo kontekstą:
Nurodykite parametrus: URI = /, žiniatinklio serveris = nextcloud_1 (pavadinimas iš ankstesnio veiksmo)
Iš naujo paleiskite LSWS. Tai daroma vienu paspaudimu iš žiniatinklio sąsajos, stebuklai! (manyje kalba paveldimas pelės nešiotojas)
Į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:
Skirtuke SSL nurodykite kelią į raktą ir sertifikatą:
„Klausytojas“ buvo sukurtas, dabar skiltyje „Virtual Host Mappings“ prie jo pridėsime savo virtualųjį prieglobą:
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.
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:
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:
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:
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:
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:
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.
Puiku, po to galime patekti į autorizacijos sąsają:
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!