ProHoster > Blog > Pangangasiwa > Nextcloud sa loob at labas ng OpenLiteSpeed: pag-set up ng reverse proxying
Nextcloud sa loob at labas ng OpenLiteSpeed: pag-set up ng reverse proxying
Paano ko ise-set up ang OpenLiteSpeed upang baligtarin ang proxy sa Nextcloud sa panloob na network?
Nakakagulat, ang paghahanap sa Habré para sa OpenLiteSpeed ay walang ibibigay! Nagmamadali akong itama ang kawalang-katarungang ito, dahil ang LSWS ay isang disenteng web server. Gustung-gusto ko ito para sa bilis at magarbong interface ng web administration:
Kahit na ang OpenLiteSpeed ay pinakasikat bilang isang WordPress "accelerator", sa artikulong ngayon ay magpapakita ako ng medyo tiyak na paggamit nito. Namely reverse proxying ng mga kahilingan (reverse proxy). Sinasabi mo na mas karaniwan na gumamit ng nginx para dito? papayag ako. Pero sobrang sakit na inlove tayo sa LSWS!
Ang pag-proxy ay ok, ngunit saan? Sa hindi gaanong kahanga-hangang serbisyo - Nextcloud. Ginagamit namin ang Nextcloud upang lumikha ng pribadong "mga ulap sa pagbabahagi ng file". Para sa bawat kliyente, naglalaan kami ng hiwalay na VM sa Nextcloud, at hindi namin gustong ilantad ang mga ito sa "labas". Sa halip, humihiling kami ng proxy sa pamamagitan ng isang karaniwang reverse proxy. Ang solusyon na ito ay nagbibigay-daan sa:
1) alisin ang server kung saan naka-imbak ang data ng kliyente mula sa Internet at
2) i-save ang mga ip-address.
Ang scheme ay ganito:
Ito ay malinaw na ang pamamaraan ay pinasimple, dahil Ang organisasyon ng imprastraktura ng mga serbisyo sa web ay hindi ang paksa ng artikulo ngayon.
Gayundin sa artikulong ito ay aalisin ko ang pag-install at pangunahing pagsasaayos ng nextcloud, lalo na dahil may mga materyales sa paksang ito sa Habré. Ngunit tiyak na ipapakita ko ang mga setting, kung wala ang Nextcloud ay hindi gagana sa likod ng isang proxy.
Ibinigay:
Ang Nextcloud ay naka-install sa host 1 at na-configure upang gumana sa http (walang SSL), mayroon lamang isang lokal na interface ng network at isang "grey" na IP address na 172.16.22.110.
I-configure natin ang OpenLiteSpeed sa host 2. Mayroon itong dalawang interface, panlabas (tumingin sa Internet) at panloob na may IP address sa network 172.16.22.0/24
Ang IP address ng panlabas na interface ng host 2 ay pangalan ng DNS cloud.connect.link
Problema:
Kumuha mula sa Internet sa pamamagitan ng link 'https://cloud.connect.link' (SSL) sa Nextcloud sa panloob na network.
Pag-install ng OpenLiteSpeed sa Ubuntu 18.04.2.
sudo ufw payagan ang ssh
sudo ufw default payagan ang palabas
sudo ufw default na tanggihan ang papasok
sudo ufw pahintulutan ang http
sudo ufw allowhttps
sudo ufw allow from iyong host ng pamamahala sa anumang port 7080
sudo ufw paganahin
I-set up ang OpenLiteSpeed bilang isang reverse proxy.
Gumawa tayo ng mga direktoryo sa ilalim ng virtualhost.
cd /usr/local/lsws/
sudo mkdirc cloud.connect.link
cd cloud.connect.link/
sudo mkdir {conf,html,logs}
sudo chown lsadm:lsadm ./conf/
I-configure natin ang virtual host mula sa LSWS web interface.
Buksan ang pamamahala ng url http://cloud.connect.link:7080
Default na login/password: admin/123456
Magdagdag ng virtual host (Mga Virtual Host > Magdagdag).
Kapag nagdadagdag, may lalabas na mensahe ng error - nawawala ang configuration file. Ito ay normal, malulutas sa pamamagitan ng pag-click sa I-click upang lumikha.
Sa tab na Pangkalahatan, tukuyin ang Document Root (bagaman hindi ito kailangan, ang config ay hindi aalis kung wala ito). Ang Domain Name, kung hindi tinukoy, ay kukunin mula sa Virtual Host Name, na pinangalanan namin ang aming domain name.
Ngayon ay oras na upang tandaan na mayroon kaming hindi lamang isang web server, ngunit isang reverse proxy. Ang mga sumusunod na setting ay magsasabi sa LSWS kung ano ang i-proxy at kung saan. Sa mga setting ng virtualhost, buksan ang tab na Panlabas na App at magdagdag ng bagong application ng uri ng Web server:
Tukuyin ang pangalan at address. Maaari mong tukuyin ang isang arbitrary na pangalan, ngunit kailangan mong tandaan ito, ito ay magiging kapaki-pakinabang sa mga susunod na hakbang. Ang address ay ang isa kung saan nakatira ang Nextcloud sa panloob na network:
Sa parehong mga setting ng virtual host, buksan ang tab na Konteksto at lumikha ng bagong konteksto ng uri ng Proxy:
Tukuyin ang mga parameter: URI = /, Web server = nextcloud_1 (pangalan mula sa nakaraang hakbang)
I-restart ang LSWS. Ginagawa ito sa isang pag-click mula sa web interface, mga himala! (isang namamana na tagadala ng mouse ang nagsasalita sa akin)
Inilalagay namin ang sertipiko, i-configure ang https. Ang pamamaraan para sa pagkuha ng isang sertipiko aalisin namin ito, sumasang-ayon na mayroon na kami nito at ilalagay ang susi sa direktoryo ng /etc/letsencrypt/live/cloud.connect.link.
Gumawa tayo ng "tagapakinig" (Listeners > Add), tawagin natin itong "https". Ituro ito sa port 443 at tandaan na ito ay magiging Secure:
Sa tab na SSL, tukuyin ang landas patungo sa susi at sertipiko:
Ang "tagapakinig" ay nilikha, ngayon sa seksyon ng Virtual Host Mappings idaragdag namin ang aming virtual host dito:
Kung ang LSWS ay mag-proxy lamang sa isang serbisyo, maaaring makumpleto ang pagsasaayos. Ngunit plano naming gamitin ito upang magpadala ng mga kahilingan sa iba't ibang "mga pagkakataon" depende sa pangalan ng domain. At lahat ng domain ay magkakaroon ng sarili nilang mga certificate. Samakatuwid, kailangan mong pumunta sa virtualhost config at muling tukuyin ang susi at sertipiko nito sa tab na SSL. Sa hinaharap, dapat itong gawin para sa bawat bagong virtual host.
Ito ay nananatiling i-configure ang muling pagsusulat ng url upang ang mga kahilingan sa http ay matugunan sa https. (Nga pala, kailan ito matatapos? Oras na para sa mga browser at iba pang software na pumunta sa https bilang default, at manu-manong ipasa sa walang-SSL kung kinakailangan).
I-on ang Enable Rewrite at isulat ang Rewrite Rules:
Dahil sa kakaibang hindi pagkakaunawaan, imposibleng ilapat ang mga panuntunan sa Rewrite gamit ang karaniwang Graceful restart. Samakatuwid, i-restart namin ang LSWS hindi maganda, ngunit walang pakundangan at mahusay:
sudo systemctl i-restart ang lsws.service
Para makinig ang server sa port 80, gumawa tayo ng isa pang Listener. Tawagan natin itong http, tukuyin ang ika-80 port at ito ay hindi Secure:
Sa pamamagitan ng pagkakatulad sa setting ng https listener, ilakip natin dito ang ating virtual host.
Ngayon ang LSWS ay makikinig sa port 80 at magpapadala ng mga kahilingan sa 443 mula dito, muling isusulat ang url.
Bilang konklusyon, inirerekumenda kong babaan ang antas ng pag-log ng LSWS, na nakatakda sa Debug bilang default. Sa mode na ito, ang mga log ay dumami sa bilis ng kidlat! Para sa karamihan ng mga kaso, ang antas ng Babala ay sapat. Pumunta sa Configuration ng Server > Log:
Kinukumpleto nito ang pagsasaayos ng OpenLiteSpeed bilang isang reverse proxy. Muli, i-restart ang LSWS, sundan ang link https://cloud.connect.link at makita:
Upang mapapasok kami ng Nextcloud, kailangan naming idagdag ang cloud.connect.link na domain sa pinagkakatiwalaang listahan. Let's go edit config.php. Awtomatikong nag-install ako ng Nextcloud kapag nag-install ng Ubuntu at ang config ay matatagpuan dito: /var/snap/nextcloud/current/nextcloud/config.
Idagdag ang parameter na 'cloud.connect.link' sa trusted_domains key:
Dagdag pa, sa parehong config, dapat mong tukuyin ang IP address ng aming proxy. Iginuhit ko ang iyong pansin sa katotohanan na ang address ay dapat na tinukoy ang isa na nakikita ng Nextcloud server, i.e. Ang IP ng lokal na interface ng LSWS. Kung wala ang hakbang na ito, gumagana ang Nextcloud web interface, ngunit hindi awtorisado ang mga application.
Mahusay, pagkatapos nito ay makapasok tayo sa interface ng awtorisasyon:
Nalutas ang problema! Ngayon ang bawat kliyente ay maaaring ligtas na gumamit ng "file cloud" sa kanyang sariling personal na url, ang server na may mga file ay hiwalay sa Internet, ang mga kliyente sa hinaharap ay makakatanggap ng lahat ng pareho at hindi isang solong karagdagang IP address ang maaapektuhan.
Bilang karagdagan, maaari kang gumamit ng reverse proxy upang maghatid ng static na nilalaman, ngunit sa kaso ng Nextcloud, hindi ito magbibigay ng kapansin-pansing pagtaas sa bilis. Kaya ito ay opsyonal at opsyonal.
Natutuwa akong ibahagi ang kwentong ito, sana ay maging kapaki-pakinabang ito sa isang tao. Kung alam mo ang mas matikas at mahusay na mga pamamaraan para sa paglutas ng problema, ako ay magpapasalamat para sa mga komento!