Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Cumu possu cunfigurà OpenLiteSpeed ​​​​per reverse proxy à Nextcloud situatu in a mo reta interna?

Sorprendentemente, una ricerca in Habré per OpenLiteSpeed ​​​​ùn dà nunda! Aghju prestu à curregà sta inghjustizia, perchè LSWS hè un servitore web degnu. Mi piace per a so velocità è l'interfaccia di amministrazione web fantastica:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Malgradu u fattu chì OpenLiteSpeed ​​​​hè più famosu cum'è "acceleratore" di WordPress, in l'articulu di l'oghje vi mustrarà una applicazione piuttostu specifica di questu. Vale à dì, proxy inversa di e dumande. Dite chì hè più cumuni di utilizà nginx per questu? Seraghju d'accordu. Ma avemu veramente innamuratu di LSWS!

Proxy ok, ma induve? Un serviziu ugualmente maravigliu hè Nextcloud. Utilizemu Nextcloud per creà "nuvuli di spartera di file". Per ogni cliente, assignemu una VM separata cù Nextcloud, è ùn vulemu micca esporli "fora". Invece, proxy dumandemu attraversu un proxy inversu cumuni. Sta suluzione vi permette di:
1) sguassate u servitore nantu à quale i dati di u cliente sò guardati da Internet è
2) salvà indirizzi IP.

U diagramma si vede cusì:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Hè chjaru chì u schema hè simplificatu, perchè l'urganizazione di l'infrastruttura di servizii web ùn hè micca u tema di l'articulu d'oghje.

Ancu in questu articulu, ometteraghju a stallazione è a cunfigurazione basica di nextcloud, soprattuttu chì ci sò materiali nantu à questu tema nantu à Habré. Ma certamente vi mustrarà i paràmetri senza quale Nextcloud ùn funziona micca daretu à un proxy.

Dà:
Nextcloud hè stallatu nantu à l'ospite 1 è cunfiguratu per travaglià via http (senza SSL), hà solu una interfaccia di rete locale è un indirizzu IP "grigiu" 172.16.22.110.
Cunfiguremu OpenLiteSpeed ​​​​on host 2. Hà duie interfacce, una esterna (vede l'Internet) è una interna cù un indirizzu IP in a reta 172.16.22.0/24.
U nome DNS cloud.connect.link porta à l'indirizzu IP di l'interfaccia esterna di l'ospite 2

Un compitu:
Get da Internet cù u ligame 'https://cloud.connect.link' (SSL) nantu à Nextcloud nantu à a reta interna.

  • Installazione di OpenLiteSpeed ​​​​in Ubuntu 18.04.2.

Aghjunghjemu un repository:

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

installà, lanciate:

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

  • Fighjemu un firewall minimu.

    sudo ufw permettenu ssh
    sudo ufw default permette l'uscita
    sudo ufw default deny incoming
    sudo ufw permettenu http
    sudo ufw permette https
    sudo ufw permette da u vostru ospite di gestione à ogni portu 7080
    sudo ufw enable

  • Cunfiguremu OpenLiteSpeed ​​​​cum'è un proxy inversu.
    Creemu repertorii per u virtualhost.

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

Cunfiguremu u virtualhost da l'interfaccia web LSWS.
Apertura di gestione URL http://cloud.connect.link:7080
Login/password predefinitu: admin/123456

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Aghjunghjite un host virtuale (Virtual Hosts> Add).
Quandu aghjunghje, un missaghju d'errore apparirà chì indica chì u schedariu di cunfigurazione manca. Questu hè normale è pò esse risolta clicchendu Cliccate per creà.

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

In a tabulazione Generale, specificate Document Root (ancu s'ellu ùn hè micca necessariu, a cunfigurazione ùn scenderà micca senza ellu). Domain Name, s'ellu ùn hè micca specificatu, serà pigliatu da u Virtual Host Name, chì avemu chjamatu u nome di u nostru duminiu.

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Avà hè u tempu di ricurdà chì ùn avemu micca solu un servitore web, ma un proxy inversu. I seguenti paràmetri diceranu à LSWS ciò chì proxy è induve. In i paràmetri di virtualhost, apre a tabulazione App Esterna è aghjunghje una nova applicazione di u tippu di u servitore Web:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Indichemu u nome è l'indirizzu. Pudete specificà un nome arbitrariu, ma avete bisognu di ricurdà; serà utile in i prossimi passi. L'indirizzu hè induve Nextcloud vive nantu à a reta interna:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

In i stessi paràmetri di virtualhost, apre a tabulazione Cuntestu è creanu un novu cuntestu di u tipu Proxy:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Specificate i paràmetri: URI = /, Web server = nextcloud_1 (nome da u passu precedente)

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Riavvia LSWS. Questu hè fattu cù un clic da l'interfaccia web, miraculi! (u portatore ereditariu di u mouse in mè parla)

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa
Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

  • Stallà u certificatu è cunfigurà https.
    Prucedura per ottene un certificatu l'ometteremu è accettemu chì l'avemu digià è si trova cù a chjave in u cartulare /etc/letsencrypt/live/cloud.connect.link.

Creemu un "ascoltatore" (Listeners> Add), chjamate "https". Puntemu à u portu 443 è nutate chì serà Secure:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

In a tabulazione SSL, indicà a strada di a chjave è u certificatu:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

U "ascoltatore" hè statu creatu, avà in a sezione Virtual Host Mappings aghjunghjemu u nostru host virtuale:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Se LSWS proxy solu à un serviziu, a cunfigurazione pò esse cumpletata. Ma avemu pensatu à aduprà per passà e dumande à diverse "autorità" secondu u nome di duminiu. È tutti i duminii avè i so certificati. Per quessa, avete bisognu à andà à a cunfigurazione virtualhost è di novu specificà a so chjave è u certificatu in a tabulazione SSL. In u futuru, questu deve esse fattu per ogni novu host virtuale.

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Tuttu ciò chì resta hè di cunfigurà a riscrittura di l'url per chì e richieste http sò indirizzate à https.
(A propositu, quandu finisce questu? Hè u tempu per i navigatori è l'altri software per cambià à https per difettu, è avanti à no-SSL manualmente se ne necessariu).
Attivate Abilita Riscrittura è scrive e Regule di Riscrittura:

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

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

A causa di una strana malintesa, ùn pudete micca applicà e regule di Riscrittura cù u solitu riavviatu Graceful. Dunque, riavvia LSWS micca grazia, ma apprussimatamente è efficace:

sudo systemctl restart lsws.service

Per chì u servitore sente à u portu 80, creeremu un altru Listener. Chjamemu http, indicà u portu 80 è u fattu chì ùn serà micca Secure:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Per analogia cù a creazione di un ascoltatore https, cartografiamu u nostru host virtuale.

Avà LSWS ascultarà u portu 80 è invià e dumande da ellu à 443, riscrivendu l'url.
Infine, ricumandemu di calà u livellu di logging LSWS, chì hè stallatu per Debug per automaticamente. In questu modu, i logs si multiplicanu à a velocità di u lampu! Per a maiò parte di i casi, u livellu di Avvertimentu hè abbastanza. Andate à Configurazione di u Server> Log:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Questu cumpleta a cunfigurazione di OpenLiteSpeed ​​​​cum'è un proxy inversu. Una volta riavviamu LSWS, seguitate u ligame https://cloud.connect.link è vedemu:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Per chì Nextcloud ci permette, avemu bisognu di aghjunghje u duminiu cloud.connect.link à a lista di quelli di fiducia. Andemu à edità config.php. Aghju installatu Nextcloud automaticamente quandu installate Ubuntu è a cunfigurazione si trova quì: /var/snap/nextcloud/current/nextcloud/config.
Aghjunghjite u paràmetru "cloud.connect.link" à a chjave trusted_domains:

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

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Dopu, in a listessa cunfigurazione avete bisognu di specificà l'indirizzu IP di u nostru proxy. Per piacè nutate chì l'indirizzu deve esse specificatu cum'è quellu chì hè visibile à u servitore Nextcloud, i.e. IP interfaccia locale LSWS. Senza stu passu, l'interfaccia web Nextcloud funziona, ma l'applicazioni ùn sò micca autorizate.

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

Grande, dopu à questu pudemu ghjunghje à l'interfaccia d'autorizazione:

Nextcloud dentru, è fora di OpenLiteSpeed: cunfigurazione di proxy inversa

Prublemu risoltu! Avà ogni cliente pò aduprà in modu sicuru u "nuvola di schedari" cù u so URL persunale, u servitore cù i schedari hè siparatu da Internet, i futuri clienti riceveranu tuttu u listessu è micca un solu indirizzu IP supplementu serà dannatu.
Inoltre, pudete aduprà un proxy inversu per furnisce u cuntenutu staticu, ma in u casu di Nextcloud, questu ùn darà micca un aumentu notevuli di a velocità. Allora questu hè facultativu è opcional.

Sò cuntentu di sparte sta storia, spergu chì serà utile à qualchissia. Se cunnosci metudi più eleganti è efficaci per risolve stu prublema, aghju da esse grati per i vostri cumenti!

Source: www.habr.com

Add a comment