Plesk Üzerine SSL Desteği ile Varnish Kurulumu

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:

nginx varnish apache plesk

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 epel-release
yum install varnish
Not: Varnish'i diğer işletim sistemlerine yükleyin.
Varnish, hemen hemen tüm dağıtımlara yüklenebilir. Debian ve Ubuntu için kurulum rehberine bu linkten ulaşabilirsiniz. Bu kaynaktaki bilgiler tüm dağıtımlar için geçerlidir.

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
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.

Önemli: 'SERVERIP'i değiştirin
“SERVERIP” bölümünü sunucunun web hosting hesaplarında kullandığınız ortak kullanılan shared IP’si ile değiştirildiğinden emin olun. Localhost veya 127.0.0.1 yapılandırdıysanız, Plesk’in vhost yapılandırması nedeniyle çalışmayacaktır.
Not: default.vcl örneği Burada özelleştirilmiş bir VCL dosyası var. Bu VCL sadece bir örnektir ve yukarıda belirtilen GitHub şablonunu temel alır. WordPress için bir önbellekleme testini bu dosyayla yaptık. Bununla birlikte, Varnish konfigürasyonunu okumayı ve VCL’yi kendiniz oluşturmanızı (veya revize etmenizi) tavsiye ederiz.

İ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.

Önemli: proxy_pass parametrelerini ayarlayın
proxy_pass parametresi için sunucunun IP adresi belirtilmelidir. Birden fazla IP kullanılıyorsa, her IP için bir vhost oluşturulmalıdır.

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.

mkdir -p /usr/local/psa/admin/conf/templates/custom/domain/service
wget https://www.sunucu.com.tr/blog/dosyalar/nginxDomainVhost -O /usr/local/psa/admin/conf/templates/custom/nginxDomainVhost.php

wget https://www.sunucu.com.tr/blog/dosyalar/domain/nginxDomainVirtualHost -O /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php

wget https://www.sunucu.com.tr/blog/dosyalar/domain/service/proxy -O /usr/local/psa/admin/conf/templates/custom/domain/service/proxy.php

Not: Plesk şablonundaki değişiklikleri okuyun
Değiştirilen yerler yorumlandı, nelerin değiştirildiğini dosyalarda görebilirsiniz.

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.

/usr/local/psa/admin/sbin/httpdmng –reconfigure-all

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 nginx
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.

varnishstat

Değişiklikleri geri almak ve Varnish’i devre dışı bırakmak

Değişiklikleri geri almak için birkaç komut yeterlidir:

systemctl disable varnish
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

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir