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:
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ì:
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.
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
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à.
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.
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:
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:
In i stessi paràmetri di virtualhost, apre a tabulazione Cuntestu è creanu un novu cuntestu di u tipu Proxy:
Specificate i paràmetri: URI = /, Web server = nextcloud_1 (nome da u passu precedente)
Riavvia LSWS. Questu hè fattu cù un clic da l'interfaccia web, miraculi! (u portatore ereditariu di u mouse in mè parla)
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:
In a tabulazione SSL, indicà a strada di a chjave è u certificatu:
U "ascoltatore" hè statu creatu, avà in a sezione Virtual Host Mappings aghjunghjemu u nostru host virtuale:
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.
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:
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:
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:
Questu cumpleta a cunfigurazione di OpenLiteSpeed cum'è un proxy inversu. Una volta riavviamu LSWS, seguitate u ligame https://cloud.connect.link è vedemu:
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:
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.
Grande, dopu à questu pudemu ghjunghje à l'interfaccia d'autorizazione:
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!