ProHoster > Blog > yönetim > OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama
OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama
OpenLiteSpeed'i dahili ağımda bulunan Nextcloud'a ters proxy yapacak şekilde nasıl yapılandırabilirim?
Şaşırtıcı bir şekilde Habré'de OpenLiteSpeed araması hiçbir sonuç vermiyor! Bu adaletsizliği düzeltmek için acele ediyorum çünkü LSWS değerli bir web sunucusudur. Hızı ve şık web yönetimi arayüzü nedeniyle onu seviyorum:
OpenLiteSpeed'in en çok WordPress "hızlandırıcısı" olarak bilinmesine rağmen, bugünkü makalemde bunun oldukça spesifik bir uygulamasını göstereceğim. Yani, isteklerin ters proxy'lenmesi. Bunun için nginx kullanımının daha yaygın olduğunu söyleyebilir misiniz? Kabul edeceğim. Ama biz gerçekten LSWS'ye aşık olduk!
Proxy kullanmak tamam ama nerede? Aynı derecede harika bir hizmet de Nextcloud'dur. Nextcloud'u özel "dosya paylaşım bulutları" oluşturmak için kullanıyoruz. Her istemci için Nextcloud ile ayrı bir VM tahsis ediyoruz ve onları “dışarıda” açığa çıkarmak istemiyoruz. Bunun yerine, istekleri ortak bir ters proxy aracılığıyla proxy olarak kullanırız. Bu çözüm şunları yapmanızı sağlar:
1) müşterinin verilerinin depolandığı sunucuyu İnternetten kaldırın ve
2) IP adreslerini kaydedin.
Diyagram şöyle görünür:
Diyagramın basitleştirilmiş olduğu açıktır, çünkü web servisleri altyapısını düzenlemek bugünkü yazımızın konusu değil.
Ayrıca bu makalede, özellikle Habré'de bu konuyla ilgili materyaller bulunduğundan, nextcloud'un kurulumunu ve temel konfigürasyonunu atlayacağım. Ancak size Nextcloud'un bir proxy arkasında çalışmadığı ayarları kesinlikle göstereceğim.
Verilen:
Nextcloud, 1. Ana Bilgisayara kurulur ve http (SSL olmadan) aracılığıyla çalışacak şekilde yapılandırılmıştır, yalnızca yerel bir ağ arayüzüne ve 172.16.22.110 "gri" IP adresine sahiptir.
Host 2'de OpenLiteSpeed'i yapılandıralım. İki arayüzü vardır, biri harici (İnternet'i görüntüler) ve diğeri 172.16.22.0/24 ağındaki IP adresine sahip dahili.
DNS adı cloud.connect.link, ana bilgisayar 2'nin harici arayüzünün IP adresine yönlendirir
Sorun:
' bağlantısını kullanarak internetten alınhttps://cloud.connect.link' (SSL) dahili ağdaki Nextcloud'da.
sudo ufw ssh'ye izin ver
sudo ufw varsayılan olarak gidenlere izin ver
sudo ufw varsayılan gelenleri reddet
sudo ufw izin ver http
sudo ufw https'ye izin veriyor
sudo ufw'den izin ver yönetim sunucunuz herhangi bir bağlantı noktasına 7080
sudo ufw etkinleştir
OpenLiteSpeed'i ters proxy olarak yapılandıralım.
Sanal ana bilgisayar için dizinler oluşturalım.
cd /usr/yerel/lsws/
sudo mkdirc cloud.connect.link
cd cloud.connect.link/
sudo mkdir {conf,html,günlükler}
sudo chown lsadm:lsadm ./conf/
Bir sanal ana bilgisayar ekleyin (Sanal Ana Bilgisayarlar > Ekle).
Ekleme sırasında yapılandırma dosyasının eksik olduğunu belirten bir hata mesajı görünecektir. Bu normaldir ve Oluşturmak için tıklayın seçeneğine tıklanarak çözülebilir.
Genel sekmesinde Belge Kökü'nü belirtin (gerekli olmasa da, yapılandırma onsuz başlamaz). Alan Adı belirtilmediği takdirde alan adımızın adı dediğimiz Sanal Host Adından alınacaktır.
Artık sadece bir web sunucumuz olmadığını, aynı zamanda ters bir proxy'ye de sahip olduğumuzu hatırlamanın zamanı geldi. Aşağıdaki ayarlar LSWS'ye neyin proxy olacağını ve nerede olacağını söyleyecektir. Virtualhost ayarlarında Harici Uygulama sekmesini açın ve Web sunucusu türünde yeni bir uygulama ekleyin:
Adını ve adresini belirtiyoruz. İsteğe bağlı bir ad belirtebilirsiniz ancak bunu hatırlamanız gerekir; sonraki adımlarda faydalı olacaktır. Adres, Nextcloud'un dahili ağda yaşadığı yerdir:
Aynı sanal ana bilgisayar ayarlarında, Bağlam sekmesini açın ve Proxy türünde yeni bir bağlam oluşturun:
Parametreleri belirtin: URI = /, Web sunucusu = nextcloud_1 (önceki adımın adı)
LSWS'yi yeniden başlatın. Bu, web arayüzünden tek bir tıklamayla yapılır, mucizeler! (içimdeki kalıtsal fare taşıyıcısı konuşuyor)
Sertifikayı kuruyoruz ve https'yi yapılandırıyoruz. Sertifika alma prosedürü onu atlayacağız ve ona zaten sahip olduğumuzu ve /etc/letsencrypt/live/cloud.connect.link dizinindeki anahtarla birlikte bulunduğunu kabul edeceğiz.
Bir "dinleyici" (Dinleyiciler > Ekle) oluşturalım, adını "https" koyalım. 443 numaralı porta işaretleyelim ve Secure olacağını not edelim:
SSL sekmesinde anahtarın ve sertifikanın yolunu belirtin:
“Dinleyici” oluşturuldu, şimdi Sanal Ana Bilgisayar Eşlemeleri bölümünde sanal ana makinemizi ona ekleyeceğiz:
LSWS yalnızca bir hizmete proxy gönderecekse yapılandırma tamamlanabilir. Ancak alan adına bağlı olarak istekleri farklı "yetkililere" iletmek için kullanmayı planlıyoruz. Ve tüm alan adlarının kendi sertifikaları olacaktır. Bu nedenle, virtualhost yapılandırmasına gitmeniz ve SSL sekmesinde anahtarını ve sertifikasını tekrar belirtmeniz gerekir. Gelecekte bu, her yeni sanal ana bilgisayar için yapılmalıdır.
Geriye kalan tek şey, http isteklerinin https'ye yönlendirileceği şekilde URL yeniden yazımını yapılandırmak. (Bu arada, bu ne zaman bitecek? Tarayıcıların ve diğer yazılımların varsayılan olarak https'ye geçme ve gerekirse manuel olarak SSL'siz geçiş yapma zamanı geldi).
Yeniden Yazmayı Etkinleştir'i açın ve Yeniden Yazma Kurallarını yazın:
RewriteCond %{SERVER_PORT} 80
Yeniden Yazma Kuralı ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Tuhaf bir yanlış anlaşılma nedeniyle, Yeniden Yazma kurallarını olağan Kontrollü yeniden başlatmayı kullanarak uygulayamazsınız. Bu nedenle, LSWS'yi zarif bir şekilde değil, kabaca ve etkili bir şekilde yeniden başlatalım:
sudo systemctl lsws.service'i yeniden başlat
Sunucunun 80 numaralı portu dinlemesi için başka bir Listener oluşturacağız. Buna http adını verelim, 80. bağlantı noktasını ve Güvenli olmayacağı gerçeğini belirtelim:
Bir https dinleyicisi ayarlamaya benzeterek, sanal ana makinemizi ona eşleyelim.
Artık LSWS, 80 numaralı bağlantı noktasını dinleyecek ve URL'yi yeniden yazarak ondan 443'e istek gönderecektir.
Son olarak, varsayılan olarak Hata Ayıklama olarak ayarlanan LSWS günlük kaydı düzeyini düşürmenizi öneririm. Bu modda kütükler ışık hızında çoğalır! Çoğu durumda Uyarı düzeyi yeterlidir. Sunucu Yapılandırması > Günlük'e gidin:
Bu, OpenLiteSpeed'in ters proxy olarak yapılandırılmasını tamamlar. LSWS'yi bir kez daha yeniden başlatıyoruz, bağlantıyı takip edin https://cloud.connect.link ve şunu görüyoruz:
Nextcloud'un bizi içeri alabilmesi için cloud.connect.link alan adını güvenilir olanlar listesine eklememiz gerekiyor. Hadi config.php'yi düzenleyelim. Ubuntu'yu yüklerken Nextcloud'u otomatik olarak yükledim ve yapılandırma burada bulunuyor: /var/snap/nextcloud/current/nextcloud/config.
'cloud.connect.link' parametresini güvenilir_alanlar anahtarına ekleyin:
Daha sonra aynı yapılandırmada proxy'mizin IP adresini belirtmeniz gerekir. Lütfen adresin Nextcloud sunucusu tarafından görülebilecek şekilde belirtilmesi gerektiğini unutmayın; LSWS yerel arayüz IP'si. Bu adım olmadan Nextcloud web arayüzü çalışır ancak uygulamalara yetki verilmez.
'güvenilen_proxy'ler' =>
dizi (
0 => '172.16.22.100',
),
Harika, bundan sonra yetkilendirme arayüzüne geçebiliriz:
Sorun çözüldü! Artık her müşteri kendi kişisel URL'sini kullanarak "dosya bulutunu" güvenle kullanabilir, dosyaların bulunduğu sunucu İnternet'ten ayrılır, gelecekteki istemciler her şeyi aynı şekilde alacak ve tek bir ek IP adresi bile zarar görmeyecektir.
Ek olarak, statik içerik sunmak için ters proxy kullanabilirsiniz, ancak Nextcloud durumunda bu, hızda gözle görülür bir artış sağlamayacaktır. Yani bu isteğe bağlı ve isteğe bağlıdır.
Bu hikayeyi paylaşmaktan mutluluk duyuyorum, umarım birilerine faydalı olur. Bu sorunu çözmek için daha şık ve etkili yöntemler biliyorsanız, yorumlarınız için minnettar olurum!