ProHoster > Blog > İdarə > OpenLiteSpeed daxilində və xaricində Nextcloud: əks proksiləşdirmənin qurulması
OpenLiteSpeed daxilində və xaricində Nextcloud: əks proksiləşdirmənin qurulması
Daxili şəbəkədə proxy-ni Nextcloud-a dəyişdirmək üçün OpenLiteSpeed-i necə qura bilərəm?
Təəccüblüdür ki, Habré-də OpenLiteSpeed üçün axtarış heç nə vermir! Mən bu ədalətsizliyi düzəltməyə tələsirəm, çünki LSWS layiqli veb serverdir. Mən onu sürəti və zərif veb idarəetmə interfeysi üçün sevirəm:
OpenLiteSpeed ən çox WordPress "sürətləndiricisi" kimi məşhur olsa da, bugünkü məqalədə mən onun kifayət qədər konkret istifadəsini göstərəcəyəm. Məhz sorğuların əks proxyləşdirilməsi (əks proxy). Bunun üçün nginx-dən istifadə etməyin daha çox olduğunu deyirsiniz? razılaşacam. Amma LSWS-ə aşiq olduğumuz üçün çox ağrıyırıq!
Proxyinq yaxşıdır, amma harada? Daha az gözəl xidmətdə - Nextcloud. Şəxsi "fayl paylaşma buludları" yaratmaq üçün Nextcloud-dan istifadə edirik. Hər bir müştəri üçün Nextcloud ilə ayrıca VM ayırırıq və biz onları “kənarda” ifşa etmək istəmirik. Bunun əvəzinə biz ümumi əks proxy vasitəsilə proksi sorğuları göndəririk. Bu həll imkan verir:
1) müştəri məlumatlarının saxlandığı serveri İnternetdən çıxarın və
2) ip ünvanlarını yadda saxla.
Diaqram belə görünür:
Aydındır ki, sxem sadələşdirilmişdir, çünki veb xidmətləri infrastrukturunun təşkili bugünkü məqalənin mövzusu deyil.
Həmçinin bu yazıda növbəti buludun quraşdırılmasını və əsas konfiqurasiyasını buraxacağam, xüsusən də Habré-də bu mövzuda materiallar var. Amma mən mütləq parametrləri göstərəcəyəm, onsuz Nextcloud proksi arxasında işləməyəcək.
Verilənlər:
Nextcloud 1-ci hostda quraşdırılıb və http üzərindən işləmək üçün konfiqurasiya edilib (SSL olmadan), yalnız yerli şəbəkə interfeysinə və 172.16.22.110 "boz" IP ünvanına malikdir.
OpenLiteSpeed-i host 2-də konfiqurasiya edək. Onun iki interfeysi var, xarici (İnternetə baxır) və daxili şəbəkədə IP ünvanı 172.16.22.0/24
Host 2-nin xarici interfeys IP ünvanı DNS adı cloud.connect.link-dir
Vəzifə:
' linki vasitəsilə internetdən alınhttps://cloud.connect.link' (SSL) daxili şəbəkədə Nextcloud-a.
sudo ufw ssh -ə icazə verin
sudo ufw default çıxışa icazə verir
sudo ufw default olaraq gələnləri rədd edir
sudo ufw httpya icazə verir
sudo ufw icazə https
sudo ufw icazə verir idarəçiliyiniz istənilən port 7080
sudo ufw imkan verir
OpenLiteSpeed-i tərs proxy kimi qurun.
Virtual hostun altında kataloqlar yaradaq.
cd /usr/local/lsws/
sudo mkdirc cloud.connect.link
cd cloud.connect.link/
sudo mkdir {conf,html,logs}
sudo chown lsadm:lsadm ./conf/
Virtual host əlavə edin (Virtual Hostlar > Əlavə et).
Əlavə edərkən bir səhv mesajı görünəcək - konfiqurasiya faylı yoxdur. Bu normaldır, yaratmaq üçün klikləməklə həll olunur.
Ümumi sekmesinde Sənəd Kökünü göstərin (lazım olmasa da, konfiqurasiya onsuz işləməyəcək). Domen Adı, göstərilmədiyi təqdirdə, bizim domen adını verdiyimiz Virtual Host Adından götürüləcək.
İndi sadəcə bir veb serverimiz deyil, əks proxy-nin olduğunu xatırlamağın vaxtı gəldi. Aşağıdakı parametrlər LSWS-ə nəyi və harada proxy verəcəyini söyləyəcək. Virtual host parametrlərində Xarici Proqramlar sekmesini açın və Veb server tipli yeni proqram əlavə edin:
Ad və ünvanı göstərin. Siz ixtiyari bir ad təyin edə bilərsiniz, ancaq onu yadda saxlamaq lazımdır, növbəti addımlarda faydalı olacaq. Ünvan Nextcloud-un daxili şəbəkədə yaşadığı ünvandır:
Eyni virtual host parametrlərində Kontekst sekmesini açın və Proksi tipli yeni kontekst yaradın:
Parametrləri göstərin: URI = /, Veb server = nextcloud_1 (əvvəlki addımdan ad)
LSWS-i yenidən başladın. Bu, veb interfeysindən bir kliklə edilir, möcüzələr! (irsi siçan daşıyıcısı məndə danışır)
Sertifikat qoyduq, https-i konfiqurasiya etdik. Sertifikatın alınması proseduru biz onu buraxacağıq, artıq bizdə olduğuna razılaşacağıq və /etc/letsencrypt/live/cloud.connect.link qovluğunda açarla yatacağıq.
Gəlin "dinləyici" yaradaq (Listeners > Add), onu "https" adlandıraq. Onu 443 portuna yönəldin və onun Təhlükəsiz olacağını qeyd edin:
SSL sekmesinde açara və sertifikata gedən yolu göstərin:
“Dinləyici” yaradıldı, indi Virtual Host Xəritələri bölməsində ona virtual hostumuzu əlavə edəcəyik:
LSWS yalnız bir xidmətə proksi verərsə, konfiqurasiya tamamlana bilər. Lakin biz ondan domen adından asılı olaraq müxtəlif “instansiyalara” sorğu göndərmək üçün istifadə etməyi planlaşdırırıq. Və bütün domenlərin öz sertifikatları olacaq. Buna görə də, virtual host konfiqurasiyasına keçməli və SSL sekmesinde onun açarını və sertifikatını yenidən göstərməlisiniz. Gələcəkdə bu, hər yeni virtual host üçün edilməlidir.
Http sorğularının https-ə ünvanlanması üçün URL-nin yenidən yazılmasını konfiqurasiya etmək qalır. (Yeri gəlmişkən, bu nə vaxt bitəcək? Brauzerlərin və digər proqram təminatının defolt olaraq https-ə keçməsinin və lazım gələrsə, əl ilə no-SSL-ə yönləndirilməsinin vaxtıdır).
Yenidən yazmağı aktivləşdirin və Yenidən Yazma Qaydalarını yazın:
RewriteCond %{SERVER_PORT} 80
Yenidən Yazma Qaydası ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Qəribə anlaşılmazlığa görə, adi Graceful yenidən işə salınması ilə Yenidən Yazma qaydalarını tətbiq etmək mümkün deyil. Buna görə də, biz LSWS-ni nəzakətlə deyil, kobud və səmərəli şəkildə yenidən başladacağıq:
sudo systemctl lsws.service-i yenidən başladın
Serverin 80-ci portu dinləməsi üçün başqa Dinləyici yaradaq. Gəlin onu http adlandıraq, 80-ci portu göstərək və o, təhlükəsiz olmayacaq:
https dinləyici parametrinə bənzətməklə, gəlin virtual hostumuzu ona əlavə edək.
İndi LSWS 80-ci portu dinləyəcək və ondan 443-ə sorğu göndərəcək, url-i yenidən yazacaq.
Yekun olaraq, defolt olaraq Debug olaraq təyin edilmiş LSWS giriş səviyyəsini aşağı salmağı tövsiyə edirəm. Bu rejimdə loglar ildırım sürəti ilə çoxalır! Əksər hallarda Xəbərdarlıq səviyyəsi kifayətdir. Server Konfiqurasiyası > Qeydə keçin:
Bu, OpenLiteSpeed-in əks proxy kimi konfiqurasiyasını tamamlayır. Bir daha LSWS-i yenidən başladın, linki izləyin https://cloud.connect.link və baxın:
Nextcloud-un bizə daxil olmasına icazə vermək üçün cloud.connect.link domenini etibarlı siyahıya əlavə etməliyik. Gəlin config.php-ni redaktə edək. Ubuntu quraşdırarkən Nextcloud-u avtomatik quraşdırdım və konfiqurasiya burada yerləşir: /var/snap/nextcloud/current/nextcloud/config.
"cloud.connect.link" parametrini etibarlı_domain açarına əlavə edin:
Bundan əlavə, eyni konfiqurasiyada proxy-nin IP ünvanını göstərməlisiniz. Diqqətinizi ona yönəldirəm ki, ünvan Nextcloud serverinə görünən ünvan göstərilməlidir, yəni. Yerli LSWS interfeysinin IP-si. Bu addım olmadan Nextcloud veb interfeysi işləyir, lakin tətbiqlərə icazə verilmir.
'trusted_proxies' =>
serial (
0 => '172.16.22.100',
),
Əla, bundan sonra avtorizasiya interfeysinə daxil ola bilərik:
Problem həll edildi! İndi hər bir müştəri "fayl buludundan" öz şəxsi URL ünvanında etibarlı şəkildə istifadə edə bilər, faylları olan server İnternetdən ayrılır, gələcək müştərilər hər şeyi eyni şəkildə alacaqlar və heç bir əlavə IP ünvanı təsirlənməyəcək.
Bundan əlavə, statik məzmunu çatdırmaq üçün əks proxy-dən istifadə edə bilərsiniz, lakin Nextcloud vəziyyətində bu, sürətdə nəzərəçarpacaq artım olmayacaq. Beləliklə, isteğe bağlıdır və isteğe bağlıdır.
Bu hekayəni paylaşmaqdan məmnunam, ümid edirəm kiməsə faydalı olar. Problemi həll etmək üçün daha zərif və effektiv üsulları bilirsinizsə, şərhlərə görə minnətdar olacağam!