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 içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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:

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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.

  • OpenLiteSpeed'in Ubuntu 18.04.2'ye kurulması.

Bir depo ekleyelim:

wget -O — http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh |sudo bash
sudo apt-get update

yükleyin, çalıştırın:

sudo apt-get openlitespeed'i yükle
sudo /usr/local/lsws/bin/lswsctrl başlat

  • Minimal bir güvenlik duvarı kuralım.

    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/

LSWS web arayüzünden virtualhost’u yapılandıralım.
URL yönetimini açma http://cloud.connect.link:7080
Varsayılan kullanıcı adı/şifre: admin/123456

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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.

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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.

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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:

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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:

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

Aynı sanal ana bilgisayar ayarlarında, Bağlam sekmesini açın ve Proxy türünde yeni bir bağlam oluşturun:

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

Parametreleri belirtin: URI = /, Web sunucusu = nextcloud_1 (önceki adımın adı)

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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)

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama
OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

  • 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:

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

SSL sekmesinde anahtarın ve sertifikanın yolunu belirtin:

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

“Dinleyici” oluşturuldu, şimdi Sanal Ana Bilgisayar Eşlemeleri bölümünde sanal ana makinemizi ona ekleyeceğiz:

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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.

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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]

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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:

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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:

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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:

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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:

'güvenilen_alanlar' =>
dizi (
0 => '172.16.22.110',
1 => 'cloud.connect.link',
),

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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:

OpenLiteSpeed'in içinde ve dışında Nextcloud: ters proxy'yi ayarlama

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!

Kaynak: habr.com

Yorum ekle