ProHoster > Blog > Ma'muriyat > OpenLiteSpeed ichida va tashqarisida Nextcloud: teskari proksi-serverni sozlash
OpenLiteSpeed ichida va tashqarisida Nextcloud: teskari proksi-serverni sozlash
Ichki tarmoqdagi proksi-serverni Nextcloud-ga qaytarish uchun OpenLiteSpeed-ni qanday sozlashim mumkin?
Ajablanarlisi shundaki, Habré-da OpenLiteSpeed uchun qidiruv hech narsa bermaydi! Men bu adolatsizlikni tuzatishga shoshildim, chunki LSWS munosib veb-server. Men uni tezligi va ajoyib veb boshqaruv interfeysi uchun yaxshi ko'raman:
OpenLiteSpeed WordPress "tezlatgichi" sifatida eng mashhur bo'lsa ham, bugungi maqolada men undan juda aniq foydalanishni ko'rsataman. Ya'ni so'rovlarni teskari proksi-server (teskari proksi). Buning uchun nginx-dan foydalanish keng tarqalgan deb aytasizmi? Men rozi bo'laman. Ammo biz LSWSni sevib qolganimiz shunchalik og'riyapti!
Proksi-server yaxshi, lekin qayerda? Bundan kam bo'lmagan ajoyib xizmatda - Nextcloud. Shaxsiy "fayl almashish bulutlarini" yaratish uchun biz Nextcloud-dan foydalanamiz. Har bir mijoz uchun biz Nextcloud bilan alohida VM ajratamiz va biz ularni “tashqarida” ochishni istamaymiz. Buning o'rniga biz umumiy teskari proksi-server orqali proksi so'rovlarini yuboramiz. Ushbu yechim quyidagilarga imkon beradi:
1) mijoz ma'lumotlari saqlanadigan serverni Internetdan olib tashlang va
2) IP-manzillarni saqlash.
Diagramma quyidagicha ko'rinadi:
Sxema soddalashtirilganligi aniq, chunki veb-xizmatlar infratuzilmasini tashkil etish bugungi maqolaning mavzusi emas.
Shuningdek, ushbu maqolada men keyingi bulutning o'rnatilishi va asosiy konfiguratsiyasini o'tkazib yuboraman, ayniqsa Habré-da ushbu mavzu bo'yicha materiallar mavjud. Lekin men, albatta, sozlamalarni ko'rsataman, ularsiz Nextcloud proksi-server ortida ishlamaydi.
May:
Nextcloud 1-xostda oʻrnatilgan va http orqali ishlash uchun sozlangan (SSLsiz), faqat mahalliy tarmoq interfeysi va “kulrang” IP manzili 172.16.22.110.
2-hostda OpenLiteSpeed-ni sozlaymiz. U ikkita interfeysga ega, tashqi (Internetga qaraydi) va tarmoqdagi IP manzili 172.16.22.0/24 bo'lgan ichki.
Xost 2 tashqi interfeysi IP manzili DNS nomi cloud.connect.link
Vazifa:
' havolasi orqali Internetdan olinghttps://cloud.connect.link' (SSL) ichki tarmoqdagi Nextcloud-ga.
sudo ufw ssh ga ruxsat beradi
sudo ufw sukut bo'yicha chiqishga ruxsat beradi
sudo ufw sukut bo'yicha kiruvchini rad etadi
sudo ufw http-ga ruxsat berish
sudo ufw ruxsat https
sudo ufw dan ruxsat beradi boshqaruv xostingingiz har qanday 7080 portiga
sudo ufw yoqadi
OpenLiteSpeed-ni teskari proksi-server sifatida sozlang.
Virtualhost ostida kataloglar yarataylik.
cd /usr/local/lsws/
sudo mkdirc cloud.connect.link
cd cloud.connect.link/
sudo mkdir {conf,html,logs}
sudo chown lsadm:lsadm ./conf/
Virtual xost qo'shing (Virtual xostlar > Qo'shish).
Qo'shish paytida xato xabari paydo bo'ladi - konfiguratsiya fayli yo'q. Bu normal holat, “Yaratish uchun bosing” tugmasini bosish orqali hal qilinadi.
Umumiy yorlig'ida Hujjat ildizini belgilang (garchi u kerak bo'lmasa ham, konfiguratsiya ularsiz o'chirilmaydi). Domen nomi, agar ko'rsatilmagan bo'lsa, biz domen nomini qo'ygan Virtual Xost nomidan olinadi.
Endi bizda nafaqat veb-server, balki teskari proksi-server ham borligini eslash vaqti keldi. Quyidagi sozlamalar LSWSga nima va qayerda proksi-server o'tkazish kerakligini aytadi. Virtual host sozlamalarida Tashqi ilova yorlig'ini oching va veb-server turidagi yangi ilovani qo'shing:
Ism va manzilni belgilang. Siz o'zboshimchalik bilan nom belgilashingiz mumkin, lekin uni eslab qolishingiz kerak, u keyingi bosqichlarda foydali bo'ladi. Manzil Nextcloud ichki tarmoqda yashaydigan manzil:
Xuddi shu virtual xost sozlamalarida Kontekst yorlig'ini oching va proksi turidagi yangi kontekstni yarating:
LSWSni qayta ishga tushiring. Bu veb-interfeysdan bir marta bosish bilan amalga oshiriladi, mo''jizalar! (irsiy sichqonchani tashuvchi menda gapiradi)
Biz sertifikat qo'yamiz, https-ni sozlaymiz. Sertifikat olish tartibi biz buni o'tkazib yuboramiz, bizda allaqachon borligiga rozi bo'lamiz va kalit bilan /etc/letsencrypt/live/cloud.connect.link katalogida yotamiz.
Keling, "tinglovchi" yarataylik (Listeners > Add), keling, uni "https" deb ataymiz. Uni 443-portga yo'naltiring va u xavfsiz bo'lishini unutmang:
SSL yorlig'ida kalit va sertifikatga yo'lni belgilang:
"Tinglovchi" yaratildi, endi Virtual xost xaritalari bo'limida biz unga virtual xostimizni qo'shamiz:
Agar LSWS faqat bitta xizmatga proksi-server yuborsa, konfiguratsiya tugallanishi mumkin. Lekin biz undan domen nomiga qarab turli “instansiyalarga” so‘rov yuborish uchun foydalanishni rejalashtirmoqdamiz. Va barcha domenlar o'z sertifikatlariga ega bo'ladi. Shuning uchun siz virtual host konfiguratsiyasiga o'tishingiz va SSL yorlig'ida yana uning kaliti va sertifikatini ko'rsatishingiz kerak. Kelajakda bu har bir yangi virtual xost uchun bajarilishi kerak.
Http so'rovlari https-ga yuborilishi uchun url-ni qayta yozishni sozlash qoladi. (Aytgancha, bu qachon tugaydi? Brauzerlar va boshqa dasturlar sukut bo'yicha https-ga o'tish va kerak bo'lsa, qo'lda no-SSL-ga o'tish vaqti keldi).
Qayta yozishni yoqish va Qayta yozish qoidalarini yozishni yoqing:
RewriteCond %{SERVER_PORT} 80
Qayta yozish qoidasi ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
G'alati tushunmovchilik tufayli odatiy Graceful qayta ishga tushirish bilan Qayta yozish qoidalarini qo'llash mumkin emas. Shuning uchun biz LSWS ni chiroyli tarzda emas, balki qo'pol va samarali qayta ishga tushiramiz:
sudo systemctl lsws.service ni qayta ishga tushiring
Server 80-portni tinglashi uchun boshqa tinglovchi yarataylik. Keling, uni http deb nomlaymiz, 80-portni belgilaymiz va u xavfsiz bo'lmaydi:
https tinglovchi sozlamalariga o'xshab, keling, virtual xostimizni unga biriktiramiz.
Endi LSWS 80-portni tinglaydi va undan 443-ga so'rovlar yuboradi, urlni qayta yozadi.
Xulosa qilib aytganda, sukut bo'yicha Debug ga o'rnatilgan LSWS jurnali darajasini pasaytirishni tavsiya qilaman. Ushbu rejimda jurnallar chaqmoq tezligida ko'payadi! Aksariyat hollarda ogohlantirish darajasi etarli. Server konfiguratsiyasi > Jurnalga o‘ting:
Bu teskari proksi sifatida OpenLiteSpeed konfiguratsiyasini yakunlaydi. Yana bir bor LSWS-ni qayta ishga tushiring, havolaga o'ting https://cloud.connect.link va qarang:
Nextcloud bizga kirishga ruxsat berish uchun biz ishonchli ro'yxatga cloud.connect.link domenini qo'shishimiz kerak. Keling, config.php ni tahrirlaymiz. Ubuntu-ni o'rnatishda Nextcloud-ni avtomatik ravishda o'rnatdim va konfiguratsiya bu erda joylashgan: /var/snap/nextcloud/current/nextcloud/config.
Trusted_domains kalitiga "cloud.connect.link" parametrini qo'shing:
Bundan tashqari, xuddi shu konfiguratsiyada siz bizning proksi-serverimizning IP-manzilini ko'rsatishingiz kerak. Sizning e'tiboringizni Nextcloud serveriga ko'rinadigan manzil ko'rsatilishi kerakligiga qarataman, ya'ni. Mahalliy LSWS interfeysining IP. Ushbu qadamsiz Nextcloud veb-interfeysi ishlaydi, lekin ilovalarga ruxsat berilmaydi.
'trusted_proxies' =>
qator (
0 => '172.16.22.100',
),
Ajoyib, shundan so'ng biz avtorizatsiya interfeysiga kirishimiz mumkin:
Muammo hal qilindi! Endi har bir mijoz o'zining shaxsiy URL manzilida "fayl buluti" dan xavfsiz foydalanishi mumkin, fayllarga ega server Internetdan ajratilgan, kelajakdagi mijozlar hamma narsani bir xil qabul qiladi va bitta qo'shimcha IP manziliga ta'sir qilmaydi.
Bundan tashqari, siz statik tarkibni etkazib berish uchun teskari proksi-serverdan foydalanishingiz mumkin, ammo Nextcloud-da bu tezlikni sezilarli darajada oshirmaydi. Shunday qilib, bu ixtiyoriy va ixtiyoriy.
Men bu voqeani baham ko'rishdan xursandman, umid qilamanki, kimgadir foydali bo'ladi. Muammoni hal qilishning yanada oqlangan va samarali usullarini bilsangiz, sharhlar uchun minnatdor bo'laman!