Plesk Üzerine SSL Desteği ile Varnish Kurulumu
5 dk okuma süresi
SUNUCU.COM.TR
Kategoriler:Linux SunucularPlesk Panel
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. [su_note note_color="#f1f1f1" text_color="#000" radius="0"] yum install epel-release yum install varnish[/su_note] [su_box title="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.[/su_box]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. [su_note note_color="#f1f1f1" text_color="#000" radius="0"] VARNISH_LISTEN_PORT=6081 VARNISH_LISTEN_PORT=6081,:6080[/su_note] 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. [su_box title="Ö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.[/su_box] [su_quote]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.[/su_quote] İ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: [su_note note_color="#f1f1f1" text_color="#000" radius="0"]systemctl enable varnish systemctl start varnish[/su_note]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. [su_box title="Ö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.[/su_box]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. [su_note note_color="#f1f1f1" text_color="#000" radius="0"] 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[/su_note] [su_box title="Not: Plesk şablonundaki değişiklikleri okuyun"]Değiştirilen yerler yorumlandı, nelerin değiştirildiğini dosyalarda görebilirsiniz.[/su_box]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. [su_note note_color="#f1f1f1" text_color="#000" radius="0"]/usr/local/psa/admin/sbin/httpdmng --reconfigure-all[/su_note] 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: [su_note note_color="#f1f1f1" text_color="#000" radius="0"] systemctl restart nginx systemctl restart httpd [/su_note]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.