CentOS/RHEL 8'de Apache için Vernik Önbelleği Nasıl Kurulur


Varnish Cache ücretsiz, açık kaynaklı, modern ve yüksek performanslı bir web uygulaması hızlandırıcıdır. Web içeriğini sunucu belleğinde, yani bir önbellekte depolayarak, web sunucusu performansınızı hızlandırmak için içeriği önbelleğe alan hızlı bir ters HTTP proxy'sidir. Apache (HTTPD) web sunucusu gibi bir kaynak sunucunun önünde çalışacak şekilde yapılandırılmıştır.

Bir istemci içerik istediğinde, Varnish HTTP isteğini kabul eder, isteği kaynak sunucuya gönderir, döndürülen nesneleri önbelleğe alır ve istemci isteğine yanıt verir. İstemcinin aynı içeriği bir sonraki isteğinde Varnish bunu önbellekten sunacaktır. Bu şekilde gelecekteki eşdeğer isteklerde yanıt süresini ve ağ bant genişliği tüketimini azaltır.

Vernik ayrıca HTTP istek yönlendiricisi, web uygulaması güvenlik duvarı, yük dengeleyici ve daha fazlası olarak da çalışır. Vernik Yapılandırma Dili (VCL) kullanılarak yapılandırılır ve Vernik Modülleri (ayrıca VMOD'lar olarak da bilinir) kullanılarak genişletilebilir. ), Edge Side Integrateds (ESL), Gzip sıkıştırma ve açma ve çok daha fazlasını destekler.

Bu makalede, Apache HTTPD web sunucusunu ve Varnish Cache 6'yı yeni bir CentOS/RHEL 8 sunucusuna nasıl kuracağınızı, yapılandırma da dahil olmak üzere öğreneceksiniz. HTTPD sunucusunun önünde çalışacak şekilde cilalayın.

Önkoşullar:

  • CentOS 8 Kurulumlu bir sunucu
  • Sisteminizde Red Hat aboneliğinin etkin olduğu RHEL 8 kurulumuna sahip bir sunucu.

Adım 1: Apache Web Sunucusunun CentOS/RHEL 8'e Kurulumu

1. DNF komutunu kullanarak sistemde kurulu tüm yazılım paketlerini aşağıdaki gibi güncelleyerek başlayın.

dnf update

2. Ardından, AppStream deposundan Apache HTTP web sunucusunu yüklemek için aşağıdaki komutu çalıştırın.

dnf install httpd

3. Kurulum tamamlanır tamamlanmaz httpd hizmetini başlatın, sistem önyüklemesi sırasında otomatik olarak başlamasını etkinleştirin ve systemctl komutunu kullanarak çalışır durumda olduğunu doğrulamak için durumunu kontrol edin.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

4. Varsayılan olarak CentOS/RHEL 8 tamamen kilitli bir güvenlik duvarı içerir (doğrulamak için firewall-cmd –state komutunu çalıştırın). Kullanıcıların HTTP üzerinden çalışan web sitelerine veya uygulamalara erişmesine izin vermek için güvenlik duvarında HTTP hizmetine erişimi açmanız ve ayrıca yeni değişiklikleri uygulamak için güvenlik duvarı ayarlarını yeniden yüklemeniz gerekir.

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

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

5. Artık Apache web sunucusu çalıştığına göre, aşağıdaki komutu kullanarak sisteme Varnish Cache kurulumuna devam edebilirsiniz.

dnf module install varnish

6. Başarılı bir kurulumun ardından sisteminizde yüklü olan Vernik sürümünü doğrulayabilirsiniz.

varnishd -V

7. Daha sonra ana yürütülebilir dosya /usr/sbin/varnishd olarak yüklenir. Ayrıca, Varnish yapılandırma dosyaları /etc/varnish dizini altında saklanır; burada:

  • /etc/varnish/default.vcl – VCL kullanılarak yazılan ana vernik yapılandırma dosyasıdır.
  • /etc/varnish/secret – vernik gizli dosyasıdır.

8. Şimdi vernik hizmetini başlatın, şimdilik, sunucunun yeniden başlatılması durumunda sistem önyüklemesi sırasında otomatik olarak başlamasını etkinleştirin ve aşağıdaki gibi çalışır durumda olduğundan emin olmak için durumunu kontrol edin.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

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

9. Şimdi Varnish Cache'i Apache hizmetinin önünde çalışacak şekilde yapılandırmanın zamanı geldi. Varsayılan olarak Apache sunucusu 80 bağlantı noktasını dinleyecek şekilde yapılandırılmıştır; bu, /etc/httpd/conf/httpd.conf ana yapılandırma dosyasında tanımlanmıştır.

Favori metin düzenleyicinizi kullanarak düzenlemek için açın.

vi /etc/httpd/conf/httpd.conf

Dinle parametresini arayın. Varnish'i Apache sunucusunun önünde çalıştırmak için, varsayılan bağlantı noktası 80'i 8080 (veya seçtiğiniz başka bir bağlantı noktası) olarak değiştirmelisiniz. aşağıdaki ekran görüntüsünde gösterilmiştir.

Bu bağlantı noktası daha sonra Varnish yapılandırma dosyasına arka uç sunucusunun bağlantı noktası olarak eklenecektir.

Ayrıca Varnish üzerinden hizmet verecek her web sitesi/uygulama için sanal host yapılandırması yukarıdaki portu dinleyecek şekilde yapılandırılmalıdır. Burada test sitemizin yapılandırması verilmiştir (/etc/httpd/conf.d/tecmint.lan.conf).

<VirtualHost *:8080>
    DocumentRoot "/var/www/html/tecmint.lan/"
    ServerName www.tecmint.lan
    # Other directives here
</VirtualHost>

Önemli: Varsayılan Apache HTTP sunucusu test sayfasının hiçbir zaman kullanılmasını önlemek için /etc/httpd/conf.d dosyasındaki tüm satırlara yorum yapın. /welcome.conf veya dosyayı silin.

rm /etc/httpd/conf.d/welcome.conf 

10. Ardından, httpd yapılandırma sözdiziminde herhangi bir hata olup olmadığını test edin. Sorun yoksa yeni değişiklikleri uygulamak için httpd hizmetini yeniden başlatın.

httpd -t
systemctl restart httpd

Systemd için Varnish'i Yapılandırma

11. Varnish'i HTTPD'nin önünde dağıtmak için, açıklandığı gibi varsayılan HTTP bağlantı noktası 80'deki istemci isteklerini dinleyecek şekilde yapılandırmanız yeterlidir. altında.

Varnish Cache 6.0 ve sonraki sürümlerde, systemd için Varnish hizmet dosyasında bağlantı noktası vernik sunucusu dinlemesini ayarlamanız gerektiğini unutmayın. Öncelikle düzenlemek için açın.

systemctl edit --full  varnish

ExecStart satırını arayın, ardından -a anahtarının değerini (adres ve bağlantı noktasının vernik dinlemesini belirtir) :6081 olarak değiştirin aşağıdaki ekran görüntüsünde belirtildiği gibi :80'e.

Daha da önemlisi, bir adres belirtmezseniz varnishd, sunucuda etkin olan tüm mevcut IPv4 ve IPv6 arayüzlerini dinleyecektir.

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

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

VCL kullanarak Varnish Arka Uç Sunucularını Yapılandırma

12. Şimdi, Vernik terminolojisinde arka uç olarak bilinen kaynak sunucuyu yapılandırmanız gerekiyor. HTTP'yi anlayan, Varnish'in içerik getirmek için konuştuğu sunucudur - bu durumda httpd. Ana yapılandırma dosyasında /etc/varnish/default.vcl yapılandırılır.

vi /etc/varnish/default.vcl 

Varsayılan adı verilen varsayılan bir arka uç yapılandırma bölümü vardır. “Varsayılan”ı sunucu1 (veya ortam standartlarınızı karşılamak için seçtiğiniz herhangi bir ad) olarak değiştirebilirsiniz. Varsayılan olarak host parametresi, arka uç sunucusunun localhost'ta çalıştığı varsayılarak localhost'a işaret eder.

Ardından bağlantı noktasını ekran görüntüsünde gösterildiği gibi 8080 (Apache sanal ana bilgisayar yapılandırma dosyasında tanımladığınız bağlantı noktası) olarak ayarlayın.

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

Arka uç sunucunuz farklı bir ana bilgisayarda çalışıyorsa (örneğin, 10.42.1.10 adresine sahip başka bir sunucu), ana bilgisayar parametresi şunu işaret etmelidir: bu IP adresi.

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

Dosyayı kaydedin ve kapatın.

13. Varnish ile ilgili gerekli tüm değişiklikleri yaptıktan sonra, Vernish hizmet dosyasındaki yeni değişiklikleri yansıtacak şekilde systemd yöneticisi yapılandırmasını yeniden yükleyin ve ayrıca yeniden başlatın. Genel değişiklikleri uygulamak için Vernik hizmetini kullanın.

systemctl daemon-reload
systemctl restart varnish

14. Bu noktada Varnish ve Apache'nin sırasıyla 80 ve 8080 bağlantı noktalarını dinlemesi gerekir. Bunu soket istatistikleri komutunu kullanarak doğrulayabilirsiniz.

ss -tpln

Adım 4: Vernik Önbelleğini ve Apache Kurulumunu Test Etme

14. Varnish Cache-HTTPD kurulumunu test etmek için bir web tarayıcısı açın ve sunucunun IP'sini veya FQDN'sini kullanarak gezinin. Strong> aşağıdaki ekran görüntüsünde gösterildiği gibi.

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

Ardından web sayfalarının Varnish Cache aracılığıyla sunulup sunulmadığını aşağıdaki gibi kontrol edin. Görüntülenen web sayfasını sağ tıklayarak HTTP başlıklarını kontrol edin, geliştirici araçlarını açmak için İncele'yi seçin, ardından sekmesini tıklayın ve Sayfayı yeniden yükleyin. Ardından, aşağıdaki ekran görüntüsünde gösterildiği gibi bunu onaylamak için HTTP başlıklarını görüntülemek üzere bir istek seçin.

Alternatif olarak doğrulamak için aşağıdaki curl komutunu çalıştırabilirsiniz.

curl -I http:///10.42.0.144
OR
#curl -I http:///www.tecmint.lan

Yararlı Varnish Cache Yardımcı Programları

15. Bu kılavuzu Varnish Cache dağıtımıyla birlikte gelen bazı yararlı programlara bakarak bitirelim. Aşağıda açıklandığı gibi vernik önbellek yönetimi, ayrıntılı günlük kayıtlarının görüntülenmesi ve vernik performans istatistiklerinin görüntülenmesi için yardımcı programlar içerirler.

vernikleme

Bunlardan ilki, çalışan bir Varnish örneğini yönetmek için kullanılan varnishadm'dir. varnishd'ye bir komut satırı arayüzü bağlantısı kurar. Varnishd'yi başlatıp durdurarak, yapılandırma parametrelerini değiştirerek, VCL'yi yeniden yükleyerek, arka uçları listeleyerek ve daha fazlasını yaparak çalışan bir Varnish örneğini etkileyebilir.

varnishadm
> backend.list

Daha fazla bilgi için man vernishadm'ı okuyun.

vernik günlüğü

Bir sonraki program, isteğe özel verilere (yani belirli istemciler ve istekler hakkındaki bilgilere) erişmek için kullanılan varnishlog'dur. Büyük miktarda bilgi sağlar, bu nedenle genellikle filtrelemek gerekir.

varnishlog

Daha fazla bilgi için man vernishlog'u okuyun.

vernikstat

Ayrıca, toplam istek sayısı, nesne sayısı ve daha fazlası gibi genel istatistiklere erişmek için kullanılan varnishstat'a (vernik istatistikleri) de sahibiz.

varnishstat

Daha fazla bilgi için man vernishstat'ı okuyun.

vernik

Ayrıca, Varnish günlüğünü okuyan ve en sık meydana gelen günlük girişlerinin sürekli olarak güncellenen bir listesini sunan bir yardımcı program olan varnishtop'a sahibiz.

varnishtop 

Daha fazla bilgi için man vernishtop'u okuyun.

vernikçi

Bir diğer yararlı yardımcı program ise varnishhist (vernik geçmişi) yardımcı programıdır, Varnish günlüklerini okur ve son N isteğin isteklerine göre dağılımını gösteren, sürekli olarak güncellenen bir histogram sunar. işleme.

varnishhist

Daha fazla bilgi için man vernishist'i okuyun.

İşte aldın! CentOS/RHEL 8'de Apache HTTP Sunucusu kullanılarak sunulan web uygulaması içeriğinizi hızlandırmak için Varnish Cache'i başarıyla dağıttınız.

Bu konuyla ilgili herhangi bir sorunuz veya paylaşacağınız düşünceleriniz varsa aşağıdaki geri bildirim formunu kullanın. Daha fazla bilgi için Varnish Cache 6.0 belgelerine bakın.

Sitenizde HTTPS'yi etkinleştirmek istiyorsanız, CentOS/RHEL 8'de Hitch kullanarak Varnish Cache için SSL/TLS'nin nasıl etkinleştirileceğini gösteren sonraki makalemize göz atın.