Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Si e vendosni OpenLiteSpeed si një server me anë të proxy për Nextcloud, i cili ndodhet në rrjetin e brendshëm?

Një mrekulli, por kërkimi në Habrë për OpenLiteSpeed nuk jep asgjë! Po e korrigjoj këtë padrejtësi, sepse LSWS është një server web i shkëlqyer. E dashuroj për shpejtësinë dhe ndërfaqen e tij moderne të administratës:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Megjithëse OpenLiteSpeed është më i njohur si "akcelerator" për WordPress, në këtë artikull do të tregoj një përdorim mjaft specifik të tij. Ajo që dua të them është përdorimi si një reverse proxy për kërkesat. Mund të thoni se është më e zakonshme të përdorni nginx për këtë? Do të bie dakord. Por na pëlqen shumë LSWS!

Proksimi është në rregull, por ku? Në një shërbim po aq të mrekullueshëm - Nextcloud. Ne përdorim Nextcloud për të krijuar "cloud" privat për shkëmbimin e skedarëve. Për çdo klient ne i ndajnë një VM të veçantë me Nextcloud dhe nuk duam t'i ekspozojmë "jashtë". Në vend të kësaj, ne proksikojmë kërkesat përmes një reverse proxy të përbashkët. Ky zgjidhje lejon:
1) të heqë serverin ku ruhen të dhënat e klientit nga interneti dhe
2) të kursejë adresa IP.

Skema duket kështu:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

ËshtĂ« e qartĂ« qĂ« skema Ă«shtĂ« e thjeshtuar, pasi organizimi i infrastrukturĂ«s sĂ« shĂ«rbimeve web nuk Ă«shtĂ« tema e kĂ«tij artikulli.

Gjithashtu, në këtë artikel do të kaloj instalimin dhe konfigurimin bazë të Nextcloud, për më tepër ka materiale të përkushtuara në këtë temë në Habrë. Por do të tregoj sigurisht konfigurimet pa të cilat Nextcloud nuk do të funksionojë pas proxy.

E dhënë:
Nextcloud është instaluar në hostin 1 dhe është konfigurua për të punuar në http (pa SSL), ka vetëm një ndërfaqe rrjetë lokale dhe një adresë IP "të errët" 172.16.22.110.
Le të konfigurim OpenLiteSpeed në hostin 2. Ai ka dy ndërfaqe, një të jashtme (që shikon në internet) dhe një të brendshme me adresën IP në rrjetin 172.16.22.0/24
Emri DNS për ndërfaqen e jashtme të hostit 2 është cloud.connect.link

Detyra:
TĂ« hyjmĂ« nga interneti nĂ« lidhjen ‘https://cloud.connect.link‘ (SSL) nĂ« Nextcloud nĂ« rrjetin e brendshĂ«m.

  • Ne instalojmĂ« OpenLiteSpeed nĂ« Ubuntu 18.04.2.

Le të shtojmë repo:

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

instalojmë dhe e aktivizojmë:

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

  • Le tĂ« konfigurojmĂ« minimalisht firewall-in.

    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

  • Le tĂ« konfigurojmĂ« OpenLiteSpeed si njĂ« reverse proxy.
    Të krijojmë direktori për virtual host.

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

Le të konfigurojmë virtual hostin nga ndërfaqja web e LSWS.
Hapim menaxhimin e URL http://cloud.connect.link:7080
Default login/password: admin/123456

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Adding a virtual host (Virtual Hosts > Add).
When adding, an error message will appear about the missing configuration file. This is normal and can be resolved by clicking Click to create.

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

In the General tab, specify Document Root (even though it won’t be needed, without it the config won’t work). The Domain Name, if not specified, will be taken from the Virtual Host Name, which we named after our domain.

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Now it’s time to remember that we’re not just setting up a web server, but a reverse proxy. The following settings will tell LSWS what to proxy and where to send it. In the virtual host settings, open the External App tab and add a new application of type Web server:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Specify the name and address. The name can be arbitrary, but it should be remembered; it will be useful in the next steps. The address is where Nextcloud resides on the internal network:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

In the same virtual host settings, open the Context tab and create a new context of type Proxy:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Specify the parameters: URI = /, Web server = nextcloud_1 (the name from the previous step)

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Restart LSWS. This can be done with one click from the web interface, magic! (the descendant of mouse carts is speaking in me)

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy
Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

  • Install the certificate, configure https.
    The procedure for obtaining the certificate we will skip, let’s agree that we already have it and it's stored along with the key in the directory /etc/letsencrypt/live/cloud.connect.link.

Create a ‘listener’ (Listeners > Add), name it ‘https’. Specify port 443 and mark it as Secure:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

In the SSL tab, specify the path to the key and certificate:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

The ‘listener’ is created, now in the Virtual Host Mappings section, add our virtual host to it:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

If LSWS will only proxy to one service, the configuration can end here. But we plan to use it to route requests to different ‘instances’ depending on the domain name. And each domain will have its own certificates. Therefore, we need to go to the virtual host config again and specify its key and certificate in the SSL tab. This will need to be done for each new virtual host in the future.

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Now we need to configure URL rewriting so that http requests are redirected to https.
(By the way, when will this end? It’s about time for browsers and other software to default to https, and for no-SSL redirects to be done manually when needed).
Enable Rewrite and write the Rewrite Rules:

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

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Për shkak të një keqkuptimi, nuk është e mundur të aplikoni rregullat e Rewrite në mënyrë të zakonshme për një ri-start të butë. Prandaj do ta rinisnim LSWS jo me delikatesë, por me forcë dhe efektivitet:

sudo systemctl restart lsws.service

Për të bërë që serveri të dëgjojë gjithashtu portin 80, do të krijojmë një Listener tjetër. Do ta quajmë http, do të specifikojmë portin 80 dhe do të theksojmë se ai nuk do të jetë i Sigurt:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Sipas analogjisë me konfigurimin e listener-it https, do ta lidhnim këtë me virtualhost-in tonë.

Tnow LSWS do të dëgjojë portin 80 dhe do të dirigjojë kërkesat nga ai në 443, duke rrekthyer URL-në.
Përfundimisht, rekomandoj të ulet niveli i të regjistruarve të LSWS, i cili ndryshe është vendosur si Debug. Në këtë mënyrë, logot shumohen me shpejtësi të madhe! Për shumicën e rasteve, niveli i Warning është i mjaftueshëm. Shkoni në Server Configuration > Log:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Kjo përfundon konfigurimin e OpenLiteSpeed si një proxy të anashkalueshëm. Një herë tjetër rinisim LSWS, dhe shkojmë në lidhjen https://cloud.connect.link dhe shohim:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Për të lejuar Nextcloud të na pranojë, është e nevojshme që domaini cloud.connect.link të shtohet në listën e domainëve të besuar. Shkoni të redaktoni 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’,
),

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Pastaj, në të njëjtin konfigurim duhet të especificohet adresa IP e proxy-it tonë. Vëmendje, adresa duhet të jetë ajo që është e dukshme për serverin Nextcloud, dmth. IP e ndërfaqes lokale të LSWS. Pa këtë hap, ndërfaqja e web-it të Nextcloud funksionon, por aplikacionet nuk regjistrohen.

‘trusted_proxies’ =>
array (
0 => ‘172.16.22.100’,
),

Shkëlqyeshëm, pas kësaj mund të hyjmë në ndërfaqen e autentifikimit:

Nextcloud brenda, OpenLiteSpeed jashtë: konfigurojmë reverse proxy

Problemi është zgjidhur! Tani çdo klient mund të përdorë në mënyrë të sigurt "ruajtjen e skedave" me URL-në e tij personale, serveri me skedarë është i 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 shpërndarjen e përmbajtjes statike, por në rastin e Nextcloud, kjo nuk do të sjellë një rritje të dukshme të shpejtësisë. Pra, kjo është opcionale dhe sipas dëshirës.

Jam i lumtur tĂ« ndaj kĂ«tĂ« histori, shpresoj se do t’i sjellĂ« dobi dikujt. NĂ«se dini metoda mĂ« delikate dhe efektive pĂ«r zgjidhjen e kĂ«saj problemi – do tĂ« isha mirĂ«njohĂ«s pĂ«r komentet!

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster