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…
sunucu.com.tr Ekibigüncellendi 4 dk okuma
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 epel-release
yum install varnish
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.
“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.
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/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
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.
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