Bu yazımızda, Plesk tarafından henüz desteklenmeyen Varnish Cache http hızlandırıcısının nasıl kurulacağını ve Plesk kurulu sunucunuzda, tüm alan adlarınız için nasıl aktif hale getireceğinizi anlatacağız.
Müşterilerimiz Plesk ile bağlantılı olarak Varnish çalıştırmak istiyorlardı. Bunun için dokümanlardaki çeşitli talimatları izledik ancak kurulum başarısız oldu. Çoğu doküman, en öndeki web sunucusunu alternatif bir bağlantı noktasına ayarlamaya ve Varnish’i, 80 portunda kullanmaya dayanıyor ancak, bu tür kullanımların çeşitli dezavantajları vardır ve SSL desteği yoktur.
Varnish nedir ve ne işe yarar?
Varnish , dinamik ve statik içeriği önbelleğe alabilir ve web sitesi performansını büyük ölçüde iyileştirir. Varnish sadece ters vekil(proxy) olarak kullanılır. Ayrıca arka planda Apache gibi bir web sunucusu kullanmanız gerekir. Varnish varsayılan olarak önbelleği bellekte saklar. Sistemde çok az bellek varsa, önbellek bir dosyaya kaynak sağlamak için yapılandırma dosyası kullanılabilir. Bununla birlikte, ram önemli ölçüde daha hızlıdır ve genellikle daha iyi performans elde edebilirsiniz.
Plesk ve Varnish: Prosedürler
Bu talimatlar, standart bir Plesk kurulumuna, yani bir ön uç olarak Nginx’e ve bir arka uç web sunucusu olarak da Apache’ye göre belirlenmiştir. Kurulum istendiği gibi çalışmazsa veya önce test etmek istiyorsanız, birkaç komutla tüm kurulumu geri alabilirsiniz.
SSL bağlantılarının da önbelleğe alındığından ve Plesk’te olumsuz bir etki olmadığından emin olmak için, Varnish’i HTTP bağlantı noktası 80’e göre ayarlamayacağız, ancak standart bağlantı noktalarını olduğu gibi bırakıyoruz. Bunun yerine, bağlantıları nginx’ten Varnish’e yönlendiriyoruz. Bağlantı işlemi şöyle görünecek:
Varnish Kurulumu
Varnish, çeşitli Linux dağıtımları için mevcuttur. Talimatlarda CentOS 7 yüklü bir sunucu kullanıyoruz. Varnish, EPEL deposu üzerinden aşağıdaki komutlar vasıtasıyla kurulabilir.
yum install varnish
Varnish Konfigürasyonu
Varnish’in bir HTTP veya HTTPS isteği olup olmadığını bilmesi için, Varnish iki bağlantı noktasında başlatılmalı, biz kurulum için 6081 ve 6080’i seçtik. Bunu /etc/varnish/varnish.params dosyasını açarak aşağıdaki gösterildiği gibi düzenleyebilirsiniz.
VARNISH_LISTEN_PORT=6081,:6080
Varnish’in istekleri doğru bir şekilde işlemesi için kurallar tanımlanmalıdır. İnternette çeşitli hazır kuralları bulunabilirsiniz. Örneğin burada da WordPress için örnek kurallar bulabilirsiniz. Kurallar /etc/varnish/default.vcl dosyasında ayarlanmalıdır. Plesk ile düzgün bağlantı sağlayabilmek için bu linkte bulunan örnek konfigurasyon dosyasını kullanabilirsiniz.
İki yapılandırma da ayarlandıktan sonra, Varnish’in otomatik olarak başlatılmasını sağlayıp ve varnish servisini başlatalım:
systemctl enable varnish systemctl start varnish
Varnish başlamazsa, journalctl -xe komutu ile sorunu görüntüleyebilirsiniz.
Yeni bir Nginx vhost oluşturarak SSL kullanımını aktif edelim
Şimdi Varnish’ten Apache’ye bağlantıları iletecek yeni bir Nginx vhost oluşturuyoruz. Prensip olarak bu vhost olmadan da yapabilir ve bağlantıları Varnish’ten doğrudan Apache’ye aktarabilirsiniz. Ancak bu durum, Apache’nin artık HTTPS bağlantılarını tanımaması neden olacaktır ve web sunucusu tüm istekleri HTTP olarak işleyecektir. Örneğin, HTTP’den HTTPS’e yeniden yönlendirmeler, .htaccess veya PHP kullanılarak (PHP bir Apache modülü olarak çalıştırılırsa) uygulanması koşuluyla sonsuz bir döngüde sona erer.
Yeni bir vhost oluşturmak için aşağıdakileri uygulayabilirsiniz:
İsterseniz, proxy parametrelerini ihtiyaçlarınıza göre genişletebilirsiniz. Örneğin, alakalı bir parametre client_max_body_size olur.
Plesk vhost şablonunu özelleştirme
Yeniden yapılandırılacak olan vhost şablonu , Nginx’ten Varnish’e başlamak üzere yönlendirilecek. Varnish daha sonra istekleri önceden oluşturulan Nginx vhost’a yönlendirir ve bu da istekleri Apache’ye iletir. Kulağa olduğundan daha karmaşık geliyor ama sizin önceden hazırlanmış aşağıdaki dosyaları kullanarak işinizi kolaylaştırabilirsiniz.
wget https://www.sunucu.com.tr/dosyalar/nginxDomainVhost -O /usr/local/psa/admin/conf/templates/custom/nginxDomainVhost.php
wget https://www.sunucu.com.tr/dosyalar/domain/nginxDomainVirtualHost -O /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php
wget https://www.sunucu.com.tr/dosyalar/domain/service/proxy -O /usr/local/psa/admin/conf/templates/custom/domain/service/proxy.php
Web sunucusu yapılandırmasını yeniden oluşturun
Yapılandırma değişikliklerinin mevcut tüm alan adlarına uygulanması için bunları aşağıdaki komutla yeni oluşturmalısınız.
Bu komutların ardından Plesk, web sunucusunu otomatik olarak yeniden başlatmalı ve yeni web sunucusu yapılandırmasını tanımalıdır. Eğer olmazsa, web sunucusunu manuel olarak yeniden başlatabilirsiniz:
systemctl restart httpd
Varnish önbelleğini test etmek ve temizlemek
Yapılandırma tamamlandı. Şimdi bir web sitesine gidin ve varnishstat çıktısını izleyin. MAIN.cache_hit ve MAIN.cache_miss değerleri önemlidir. İlk aramadan sonra sayfa önbelleklenir. Diğer istekler MAIN.cache_hit değerini arttırmalıdır. Bu değer, önbellekten kaç istek yüklendiğini gösterir. Ancak MAIN.cache_miss, arka uç web sunucusu(apache) tarafından kaç isteğin işlendiğini gösterir.
Değişiklikleri geri almak ve Varnish’i devre dışı bırakmak
Değişiklikleri geri almak için birkaç komut yeterlidir:
systemctl stop varnish
rm -rf /usr/local/psa/admin/conf/templates/custom/nginxDomainVhost.php
rm -rf /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php
rm -rf /usr/local/psa/admin/conf/templates/custom/domain/service/proxy.php
/usr/local/psa/admin/sbin/httpdmng –reconfigure-all