Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Hogyan állíthatom be az OpenLiteSpeed-et, hogy a belső hálózaton visszafordítsa a proxyt a Nextcloud felé?

Meglepő módon az OpenLiteSpeed ​​keresése a Habré-n nem ad semmit! Sietek orvosolni ezt az igazságtalanságot, mert az LSWS egy tisztességes webszerver. Szeretem a gyorsaságáért és a divatos webes adminisztrációs felületéért:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Annak ellenére, hogy az OpenLiteSpeed ​​a leghíresebb a WordPress „gyorsítójaként”, a mai cikkben ennek egy meglehetősen konkrét felhasználását mutatom be. Nevezetesen a kérések fordított proxyzása (fordított proxy). Azt mondod, általánosabb az nginx használata erre? egyetértek. De annyira fáj, hogy beleszerettünk az LSWS-be!

A proxy rendben van, de hol? Nem kevésbé csodálatos szolgáltatásban - Nextcloud. A Nextcloudot használjuk privát "fájlmegosztó felhők" létrehozására. Minden klienshez külön virtuális gépet osztunk ki a Nextclouddal, és nem akarjuk „kint” kitenni őket. Ehelyett a kéréseket egy közös fordított proxyn keresztül proxyzzuk. Ez a megoldás lehetővé teszi:
1) távolítsa el az internetről azt a szervert, amelyen az ügyféladatokat tárolják, és
2) mentse az IP-címeket.

A diagram így néz ki:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Nyilvánvaló, hogy a rendszer egyszerűsített, mert A webszolgáltatások infrastruktúrájának megszervezése nem a mai cikk témája.

Ebben a cikkben is kihagyom a nextcloud telepítését és alapkonfigurációját, főleg, hogy Habrénak vannak anyagai a témában. De mindenképpen megmutatom a beállításokat, amik nélkül a Nextcloud nem működik proxy mögött.

adott:
A Nextcloud az 1-es gazdagépen van telepítve, és úgy van beállítva, hogy http-n (SSL nélkül) működjön, csak helyi hálózati interfésszel és "szürke" IP-címmel rendelkezik: 172.16.22.110.
Állítsuk be az OpenLiteSpeed-et a 2-es gazdagépen. Két interfésszel rendelkezik, külső (internetre néz) és belső IP-címmel a hálózaton 172.16.22.0/24
A 2. gazdagép külső interfészének IP-címe a DNS név cloud.connect.link

Feladat:
Szerezzen le az internetről a linken keresztülhttps://cloud.connect.link' (SSL) a Nextcloud számára a belső hálózaton.

  • Az OpenLiteSpeed ​​telepítése Ubuntu 18.04.2-re.

Adjunk hozzá egy adattárat:

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

telepíteni, futtatni:

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

  • Minimális tűzfal beállítás.

    sudo ufw engedélyezi az ssh -t
    sudo ufw alapértelmezett kimenő engedélyezése
    sudo ufw alapértelmezett deny bejövő
    sudo ufw engedélyezi a http-t
    sudo ufw engedélyezi a https-t
    sudo ufw engedélyezése from a menedzsment házigazdája bármelyik 7080-as portra
    sudo ufw engedélyez

  • Állítsa be az OpenLiteSpeed-et fordított proxyként.
    Hozzunk létre könyvtárakat a virtualhost alatt.

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

Állítsuk be a virtuális gazdagépet az LSWS webes felületéről.
Nyissa meg az url-kezelést http://cloud.connect.link:7080
Alapértelmezett bejelentkezési név/jelszó: admin/123456

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Adjon hozzá egy virtuális gazdagépet (Virtuális gazdagépek > Hozzáadás).
Hozzáadáskor hibaüzenet jelenik meg - hiányzik a konfigurációs fájl. Ez normális, a Kattintson a létrehozáshoz gombra kattintva megoldható.

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Az Általános lapon adja meg a Dokumentum gyökerét (bár nincs rá szükség, a konfiguráció nem indul el nélküle). A domain név, ha nincs megadva, a virtuális gazdagép nevéből származik, amelyet a domain nevünknek neveztünk el.

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Itt az ideje, hogy ne feledje, hogy nemcsak webszerverünk van, hanem fordított proxynk is. A következő beállítások megmondják az LSWS-nek, hogy mit és hol kell proxyzni. A virtualhost beállításainál nyissa meg a Külső alkalmazás lapot, és adjon hozzá egy új webszerver típusú alkalmazást:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Adja meg a nevet és a címet. Megadhat tetszőleges nevet, de emlékeznie kell rá, a következő lépésekben jól fog jönni. A cím az, ahol a Nextcloud a belső hálózatban él:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Ugyanabban a virtuális gazdagép-beállításban nyissa meg a Kontextus lapot, és hozzon létre egy új Proxy típusú kontextust:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Adja meg a paramétereket: URI = /, Webszerver = nextcloud_1 (az előző lépésből származó név)

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Indítsa újra az LSWS-t. Ez egy kattintással megtörténik a webes felületről, csodák! (egy örökletes egérhordozó beszél bennem)

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása
Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

  • Feltesszük a tanúsítványt, beállítjuk a https-t.
    A tanúsítvány megszerzésének eljárása kihagyjuk, beleegyezünk, hogy már megvan, és a /etc/letsencrypt/live/cloud.connect.link könyvtárban lévő kulccsal feküdjünk.

Hozzunk létre egy „hallgatót” (Listeners > Add), nevezzük „https”-nek. Irányítsa a 443-as portra, és vegye figyelembe, hogy biztonságos lesz:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Az SSL lapon adja meg a kulcs és a tanúsítvány elérési útját:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

A „hallgató” elkészült, most a Virtual Host Mappings részben hozzáadjuk hozzá a virtuális gazdagépünket:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Ha az LSWS csak egy szolgáltatáshoz proxyzik, a konfiguráció befejezhető. De azt tervezzük, hogy a domain névtől függően különböző "példányokhoz" küldjük a kéréseket. És minden domainnek saját tanúsítványa lesz. Ezért el kell lépnie a virtualhost konfigurációjához, és újra meg kell adnia annak kulcsát és tanúsítványát az SSL lapon. A jövőben ezt minden új virtuális gazdagépnél meg kell tenni.

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Továbbra is be kell állítani az url-újraírást úgy, hogy a http kérések a https-hez legyenek címezve.
(Egyébként mikor lesz ennek vége? Itt az ideje, hogy a böngészők és egyéb szoftverek alapértelmezés szerint a https-re lépjenek, és szükség esetén manuálisan továbbítsanak a no-SSL-re).
Kapcsolja be az Újraírás engedélyezése és az Újraírási szabályok írása lehetőséget:

RewriteCond %{SERVER_PORT} 80
Újraírási szabály ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Egy furcsa félreértés miatt lehetetlen az Újraírási szabályok alkalmazása a szokásos Graceful újraindítással. Ezért az LSWS-t nem kecsesen, hanem durván és hatékonyan indítjuk újra:

sudo systemctl indítsa újra az lsws.service-t

Ahhoz, hogy a szerver figyeljen a 80-as portra, hozzunk létre egy másik figyelőt. Nevezzük http-nek, adja meg a 80. portot, és hogy az nem biztonságos:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

A https figyelő beállításához hasonlóan csatoljuk hozzá a virtuális gazdagépünket.

Most az LSWS a 80-as porton figyel, és onnan küld kéréseket a 443-ra, átírva az url-t.
Összefoglalva, azt javaslom, hogy csökkentse az LSWS naplózási szintjét, amely alapértelmezés szerint Debug-ra van állítva. Ebben az üzemmódban a rönkök villámgyorsan szaporodnak! A legtöbb esetben a Figyelmeztetés szint elegendő. Lépjen a Szerver konfigurációja > Napló menüpontra:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Ezzel befejeződik az OpenLiteSpeed ​​fordított proxyként való konfigurálása. Még egyszer indítsa újra az LSWS-t, kövesse a hivatkozást https://cloud.connect.link és nézd:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Ahhoz, hogy a Nextcloud beengedhessen minket, hozzá kell adnunk a cloud.connect.link tartományt a megbízható listához. Szerkesszük a config.php-t. A Nextcloudot automatikusan telepítettem az Ubuntu telepítésekor, és a konfiguráció itt található: /var/snap/nextcloud/current/nextcloud/config.
Adja hozzá a „cloud.connect.link” paramétert a trusted_domains kulcshoz:

'trusted_domains' =>
tömb (
0 => '172.16.22.110',
1 => 'Cloud.connect.link',
),

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Ezenkívül ugyanabban a konfigurációban meg kell adnia proxynk IP-címét. Felhívom a figyelmet, hogy azt a címet kell megadni, amelyik a Nextcloud szerver számára látható, pl. A helyi LSWS interfész IP-je. E lépés nélkül a Nextcloud webes felülete működik, de az alkalmazások nincsenek engedélyezve.

'trusted_proxy' =>
tömb (
0 => '172.16.22.100',
),

Remek, ezek után bejuthatunk az engedélyezési felületre:

Nextcloud belül és kívül OpenLiteSpeed: fordított proxy beállítása

Probléma megoldódott! Mostantól minden kliens biztonságosan használhatja a „fájlfelhőt” a saját személyes url-jén, a fájlokat tartalmazó szerver elkülönül az internettől, a leendő kliensek mindent ugyanúgy kapnak, és egyetlen további IP-cím sem lesz érintett.
Ezenkívül fordított proxyt is használhat statikus tartalom továbbítására, de a Nextcloud esetében ez nem eredményez észrevehető sebességnövekedést. Tehát opcionális és nem kötelező.

Örülök, hogy megoszthatom ezt a történetet, remélem, hasznos lesz valakinek. Ha tud elegánsabb és hatékonyabb módszereket a probléma megoldására, megköszönném az észrevételeket!

Forrás: will.com

Hozzászólás