CentOS/RHEL 8'de Nginx için Varnish Cache 6 Nasıl Kurulur


Varnish Cache (genellikle Varnish olarak anılır), modern mimariye ve esnekliğe sahip, açık kaynaklı, güçlü ve hızlı bir ters proxy HTTP hızlandırıcısıdır. yapılandırma dili. Ters proxy olmak, istemcilerin HTTP isteklerini almak ve bunları sunucuya iletmek için Nginx gibi web sunucunuzun (kaynak sunucu veya arka uç olan) önüne dağıtabileceğiniz bir yazılım olduğu anlamına gelir. İşleme için kaynak sunucu. Ve yanıtı kaynak sunucudan istemcilere iletir.

Vernik, Nginx ile istemciler arasında aracı görevi görür ancak bazı performans avantajlarına sahiptir. Temel amacı, önbellekleme motoru olarak çalışarak uygulamalarınızın daha hızlı yüklenmesini sağlamaktır. İstemcilerden istekleri alır ve istenen içeriği önbelleğe almak (dosyaları ve dosya parçalarını bellekte saklamak) için bunları bir kez arka uca iletir. Daha sonra, tamamen benzer içeriğe yönelik gelecekteki tüm istekler önbellekten sunulacaktır.

Bu, web uygulamalarınızın daha hızlı yüklenmesini sağlar ve dolaylı olarak web sunucunuzun genel performansını artırır çünkü Vernik, Nginx'in depolama diskindeki dosyaları işlemesi yerine bellekteki içeriği sunacaktır.

Varnish'in önbelleğe almanın yanı sıra HTTP istek yönlendiricisi, yük dengeleyici, web uygulaması güvenlik duvarı ve daha fazlasını içeren başka kullanım durumları da vardır.

Vernik, yüksek düzeyde genişletilebilir yerleşik Vernik Yapılandırma Dili (VCL) kullanılarak yapılandırılır ve bu, gelen isteklerin nasıl olması gerektiğine ilişkin politikalar yazmanıza olanak tanır. ele alındı. Özelleştirilmiş çözümler, kurallar ve modüller oluşturmak için kullanabilirsiniz.

Bu makalede, Nginx web sunucusunu ve Varnish Cache 6'yı yeni bir CentOS 8 veya 'ye yükleme adımlarını inceleyeceğiz. RHEL 8 sunucusu. RHEL 8 kullanıcıları redhat aboneliğini etkinleştirdiklerinden emin olmalıdır.

Tek başına Nginx web sunucusunu kurmak yerine eksiksiz bir LEMP yığını kurmak için aşağıdaki kılavuzlara göz atın.

  1. LEMP Sunucusu CentOS 8'e Nasıl Kurulur
  2. LEMP Sunucusunu RHEL 8'e Yükleme

Adım 1: Nginx Web Sunucusunu CentOS/RHEL 8'e yükleyin

1. CentOS/RHEL 8, Nginx web sunucusu yazılımının en son sürümüyle birlikte gelir, dolayısıyla onu varsayılan depodan yükleyeceğiz. dnf komutlarını takip etmek.

dnf update
dnf install nginx

2. Nginx kurulduktan sonra aşağıdaki systemctl komutlarını kullanarak başlatmanız, etkinleştirmeniz ve durumu doğrulamanız gerekir.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Biraz merakınız varsa aşağıdaki ss komutunu kullanarak varsayılan olarak port 80'de çalışan Nginx TCP soketini de kontrol edebilirsiniz.

ss -tpln

4. Sistemde güvenlik duvarını çalıştırıyorsanız, güvenlik duvarı kurallarını bir web sunucusuna yapılan isteklere izin verecek şekilde güncellediğinizden emin olun.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

Adım 2: Varnish Cache 6'yı CentOS/RHEL 8'e yükleme

5. CentOS/RHEL 8, varsayılan olarak 6.0 sürümünü içeren bir Varnish Cache DNF modülü sağlar LTS (Uzun Vadeli Destek).

Modülü kurmak için aşağıdaki komutu çalıştırın.

dnf module install varnish

6. Modül kurulumu tamamlandıktan sonra sisteminizde yüklü olan Vernish sürümünü doğrulayabilirsiniz.

varnishd -V

7. Varnish Cache'i yükledikten sonra, /usr/sbin/varnishd altına yüklenen ana yürütülebilir komut ve vernik yapılandırma dosyaları konumunda bulunur /etc/varnish/.

/etc/varnish/default.vcl dosyası, VCL kullanılarak yazılan ana vernik yapılandırma dosyasıdır ve /etc/varnish/secret ise verniktir. gizli dosya.

8. Ardından, Varnish hizmetini başlatın, sistem önyüklemesi sırasında otomatik olarak başlatılmasını etkinleştirin ve çalışır durumda olduğunu onaylayın.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Adım 3: Nginx'i Vernik Önbelleğiyle Çalışacak Şekilde Yapılandırma

9. Bu bölümde, Varnish Cache'in Nginx'in önünde çalışacak şekilde nasıl yapılandırılacağını göstereceğiz. Varsayılan olarak Nginx 80 bağlantı noktasını dinler, normalde her sunucu bloğu (veya sanal ana bilgisayar) bu bağlantı noktasını dinleyecek şekilde yapılandırılmıştır.

Örneğin, ana yapılandırma dosyasında (/etc/nginx/nginx.conf) yapılandırılan varsayılan nginx sunucu bloğuna bir göz atın.

vi /etc/nginx/nginx.conf

Aşağıdaki ekran görüntüsünde gösterildiği gibi sunucu bloğu bölümünü arayın.

10. Varnish'i Nginx'in önünde çalıştırmak için, varsayılan Nginx bağlantı noktasını 80'den 'ye değiştirmelisiniz. >8080 (veya seçtiğiniz herhangi bir bağlantı noktası).

Bu, Vernikaracılığıyla sunmak istediğiniz siteler veya web uygulamaları için gelecekteki tüm sunucu bloğu yapılandırma dosyalarında (genellikle /etc/nginx/conf.d/ altında oluşturulur) yapılmalıdır. >.

Örneğin, tecmint.lan test sitemizin sunucu bloğu /etc/nginx/conf.d/tecmint.lan.conf'dur ve aşağıdaki yapılandırmaya sahiptir.

server {
        listen       8080;
        server_name  www.tecmint.lan;
        root         /var/www/html/tecmint.lan/;
        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}

Önemli: Gösterildiği gibi /etc/nginx/nginx.conf dosyasındaki yapılandırma bölümüne yorum yaparak varsayılan sunucu bloğunu devre dışı bırakmayı unutmayın. aşağıdaki ekran görüntüsünde. Bu, sunucunuzda diğer web sitelerini/uygulamaları çalıştırmaya başlamanızı sağlar, aksi takdirde Nginx, istekleri her zaman varsayılan sunucu bloğuna yönlendirir.

11. Yapılandırma tamamlandıktan sonra, yapılandırma dosyasında herhangi bir hata olup olmadığını kontrol edin ve son değişiklikleri uygulamak için Nginx hizmetini yeniden başlatın.

nginx -t
systemctl restart nginx

12. Daha sonra, istemcilerden HTTP isteklerini almak için Varnish'i 80 bağlantı noktasında çalışacak şekilde yapılandırmamız gerekir. Bu değişikliğin Varnish ortam dosyasında (artık kullanımdan kaldırılmıştır) yapıldığı Varnish Cache'in önceki sürümlerinden farklı olarak, 6.0 ve sonraki sürümlerde .

Vernish servis dosyasında gerekli değişikliği yapmamız gerekiyor. Düzenleme amacıyla uygun hizmet dosyasını açmak için aşağıdaki komutu çalıştırın.

systemctl edit --full  varnish

Aşağıdaki satırı bulun ve dinleme adresini ve portunu belirten -a anahtarının değerini değiştirin. Bağlantı noktasını aşağıdaki ekran görüntüsünde gösterildiği gibi 80 olarak ayarlayın.

Bir adres belirtmezseniz, varnishd'nin sunucuda etkin olan tüm mevcut IPv4 ve IPv6 arayüzlerini dinleyeceğini unutmayın.

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Değişiklikleri dosyaya kaydedin ve çıkın.

13. Ardından, Varnish'in içerik almak için ziyaret edeceği arka uç sunucusunu tanımlamanız gerekir. Bu, Varnish ana yapılandırma dosyasında yapılır.

vi /etc/varnish/default.vcl 

Varsayılan arka uç yapılandırması bölümünü arayın ve "varsayılan" dizesini sunucu1 (veya kaynak sunucunuzu temsil edecek seçtiğiniz herhangi bir ad) olarak değiştirin. Ardından bağlantı noktasını 8080 (veya sunucu bloğunuzda tanımladığınız Nginx dinleme bağlantı noktası) olarak ayarlayın.

backend server1 {
    .host = "127.0.0.1";
    .port = "8080";
}

Bu kılavuz için Varnish ve Nginx'i aynı sunucuda çalıştırıyoruz. Nginx web sunucunuz farklı bir ana bilgisayarda çalışıyorsa. Örneğin, 10.42.0.247 adresine sahip başka bir sunucu, ardından .host parametresini gösterildiği gibi ayarlayın.

backend server1 {
    .host = "10.42.0.247";
    .port = "8080";
}

Dosyayı kaydedin ve kapatın.

14. Daha sonra, Varnish hizmet dosyasında yapılan son değişiklikler nedeniyle systemd yöneticisi yapılandırmasını yeniden yüklemeniz, ardından değişiklikleri aşağıdaki gibi uygulamak için Varnish hizmetini yeniden başlatmanız gerekir.

systemctl daemon-reload
systemctl restart varnish

15. Şimdi Nginx ve Varnish'in yapılandırılmış TCP yuvalarını dinlediğini doğrulayın.

ss -tpln

Adım 4: Nginx Varnish Önbellek Kurulumunu Test Etme

16. Ardından, web sayfalarının Varnish Cache aracılığıyla sunulduğunu aşağıdaki gibi doğrulayın. Bir web tarayıcısı açın ve aşağıdaki ekran görüntüsünde gösterildiği gibi sunucu IP'sini veya FDQN'yi kullanarak gezinin.

http://www.tecmin.lan
OR
http://10.42.0.144

17. Alternatif olarak, gösterildiği gibi kıvırma komutunu kullanın. Sunucunuzun IP adresini veya web sitenizin FQDN'sini kullanın veya yerel olarak test ediyorsanız 127.0.0.1 veya localhost kullanın.

curl -I http:///www.tecmint.lan

Yararlı Vernik Önbellek Yönetimi Yardımcı Programları

18. Bu son bölümde, Varnish Cache ile birlikte gelen ve vernishd 'i kontrol etmek için kullanabileceğiniz bazı yararlı yardımcı programlardan bazılarını kısaca açıklayacağız. , bellek içi günlüklere, genel istatistiklere ve daha fazlasına erişin.

vernikleme

varnishadm, çalışan bir Varnish örneğini kontrol etmeye yönelik bir yardımcı programdır. Vernishd ile CLI bağlantısı kurar. Örneğin, aşağıdaki ekran görüntüsünde gösterildiği gibi yapılandırılmış arka uçları listelemek için bunu kullanabilirsiniz (daha fazla bilgi için man varnishadm'i okuyun).

varnishadm
varnish> backend.list

vernik günlüğü

varnishlog yardımcı programı isteğe özel verilere erişim sağlar. Belirli istemciler ve istekler hakkında bilgi sunar (daha fazla bilgi için man varnishlog'u okuyun).

varnishlog

vernikstat

Vernik istatistikleri olarak da bilinen bir varnishstat; önbellek isabetleri ve eksikleri gibi bellek içi istatistiklere ve depolamayla ilgili bilgilere erişim sağlayarak Varnish'in mevcut performansına bir bakış sağlar. , oluşturulan ileti dizileri, silinen nesneler (daha fazla bilgi için man varnishstat'ı okuyun).

varnishstat 

vernik

Bir varnishtop yardımcı programı, paylaşılan bellek günlüklerini okur ve en sık karşılaşılan günlük girişlerinin sürekli olarak güncellenen bir listesini sunar (daha fazla bilgi için man varnishtop'u okuyun).

varnishtop 

vernikçi

Bir varnishhist (vernik geçmişi) yardımcı programı, vernik günlüklerini ayrıştırır ve son n isteğin işlenmesine göre dağılımını gösteren, sürekli olarak güncellenen bir histogramın çıktısını alır ( Daha fazla bilgi için man vernishhist'i okuyun).

varnishhist

Bu kadar! Bu kılavuzda, Varnish Cache'in nasıl kurulacağını ve CentOS/RHEL 8<'de web içeriği dağıtımını hızlandırmak için Nginx HTTP sunucusunun önünde nasıl çalıştırılacağını gösterdik. /strong>.

Bu kılavuzla ilgili her türlü düşünce veya soru aşağıdaki geri bildirim formu kullanılarak paylaşılabilir. Daha fazla bilgi için Vernik Önbelleği belgelerini okuyun.

Varnish Cache'in ana dezavantajı, HTTPS için yerel desteğin bulunmamasıdır. Web sitenizde/uygulamanızda HTTPS'yi etkinleştirmek için, sitenizi korumak üzere Varnish Cache ile birlikte çalışacak bir SSL/TLS sonlandırma proxy'si yapılandırmanız gerekir. Bir sonraki makalemizde, CentOS/RHEL 8'de Hitch kullanarak Varnish Cache için HTTPS'nin nasıl etkinleştirileceğini göstereceğiz.