Dinamik sayfaların yavaşlığından kurtulmaya ne dersiniz?
İçindekiler
Varnish Nedir?
Varnish bir HTTP hızlandırıcıdır. Ziyaretçileri her ziyarette tekrar oluşturulan dinamik sayfalar yerine önbelleğine alınmış statik sayfalara yönlendirir ve sitenin hızlı bir şekilde açılmasını sağlar. Varnish’in en güzel özelliklerinden bir tanesi ise ne zaman içeriği dinamik olarak oluşturulmasını sağlayacağını bilmesidir. Bu durumda sadece gerek olduğu zaman sayfalar dinamik olarak oluşturulur.
Öngereksinimler
Varnish’i kurmaya başlamadan önce aşağıdaki adımları yaptığınızdan emin olun:
Adım 1 – Kurulum
Varnish, kurulumun kendi deposundan yapılmasını önerilmektedir. Bunun için Varnish depo adresini Ubuntu’ya ekleyelim:
sudo curl http://repo.varnish-cache.org/debian/GPG-key.txt | sudo apt-key add -
Ubuntu’nun depo kaynak dosyasını açalım
sudo nano /etc/apt/sources.list
İçine aşağıdaki satırı ekleyip kaydedelim ve kapatalım
deb http://repo.varnish-cache.org/ubuntu/ lucid varnish-3.0
Son olarak depoyu güncelleyelim ve kurulumu yapalım
sudo apt-get update sudo apt-get install varnish
Adım 2 – Varnish Ayarları
Bu adımda nginx ve Varnish için portları ayarlayacağız. nginx’i arka plana atıp 8080 portunu vereceğiz ve Varnish 80 portuna geçecek.
Varnish ayar dosyasını açalım
sudo nano /etc/default/varnish
Alternative 2 bölümünün altındaki port number satırının değerini “-a”dan “80”e değiştirelim. Aşağıdaki gibi olması gerek:
DAEMON_OPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
Burada yapmamız gereken tek değişiklik buydu. Kaydedip kapatalım ve default.vcl dosyasını açalım.
sudo nano /etc/varnish/default.vcl
Aşağıdaki satırı bulun ve portun 8080 olduğundan emin olun. Bu port nginx’in portunu belirtiyor.
backend default { .host = "127.0.0.1"; .port = "8080"; }
Adım 3 – nginx Ayarları
Şu anda 80 portunu dinleyen iki adet sunucu var. Nginx’i 8080’e atamak için ayar dosyasını açıp portu değiştirelim.
sudo nano /etc/nginx/sites-available/wordpress
Aşağıdaki satırdan portu ayarlayabilirsiniz.
[...] server { listen 127.0.0.1:8080; ## listen for ipv4; this line is default and implied [...]
Kaydedip kapatalım.
Adım 4 – Yeniden Başlatma
Nginx ve Varnish’i tekrar başlatalım. Değişiklikler geçerli olacaktır.
sudo service nginx restart sudo service varnish restart
Hocam anlatım için teşekkürler ben bunu magento için yapmaya çalışıyorum fakat şu 3. adımı biraz daha detaylandırırmısın ne denediysem olmadı bir türlü
Tam olarak hata aldığınız yeri ve hatayı söylerseniz yardımcı olmaya çalışayım.
Hiç bir şey olmuyor hocam siz — sudo nano /etc/nginx/sites-available/wordpress şeklinde — açmışsınız ben dosya adı olarak
domain adını yazıyorum dosyanın içinide sizin örneğinizde ki gibi listen 127.0.0.1:8080; yapıyorum fakat hiç bir şey olmuyor ne varnish araya giriyor nede site hata veriyor aynı şekilde devam ediyor apache2 nin altında ports.conf içinde defalut port 7080 olarak kayıtlı bundan kaynaklı bir sorun olabilirmi ports.conf taki 7080 leri 8080 olarak değiştirincede 502 bad gateway hatası veriyor site, umarım anlatabilmişimdir teşekkürler,
Benim Apache ile hic deneyimim olmadi ancak Apache farkli portta hata veriyorsa onu 7080de birakip Varnish’in ayarlarindan 7080 portunu dinlemesini ayarlayabilirsiniz. Ancak varnish’in aktif olmadigi kanisina nereden vardiniz?
Benim Apache ile hic deneyimim olmadi ancak Apache farkli portta hata veriyorsa onu 7080de birakip Varnish’in ayarlarindan 7080 portunu dinlemesini ayarlayabilirsiniz. Ancak varnish’in aktif olmadigi kanisina nereden vardiniz?
http://centralops.net/co/DomainDossier.aspx diye bir site buldum burada service scan yapılabiliyor örneklerde verilen sitelerde
X-Varnish: 441130910 441130780
Age: 936
Via: 1.1 varnish
şeklinde bir tanım çıkarken kendi domainimde çıkmıyor bu siteyi tavsiye eden yerde varnish çalışıyorsa bu ibareyi görürsünüz diye bir şey yazıyordu birde dediğiniz gibi 7080 e varnishi ayarlamayı denim teşekkürler,
Hocam merhaba,
Aramalarda rastladım size sanırım Varnish Cache kullanımı konusunda deneyimlisiniz. Şöyle bir sorunum var yardımcı olabilirseniz çok sevinirim.
Bir sitede (özel kodlama) nginx+memcache+varnish kullanıyoruz. Fakat sorunumuz şu mesela panelden manşete bir içerik eklediğimizde bu içeriği varnishi restart etmeden göremiyoruz. Bunu nasıl çözebiliriz acaba. Memecache içerik değiştiğinde hemen güncelleniyor ama varnish tarafında bu sorunu aşamadık. Bu konuda öneriniz olurmu acaba. Bilgi verebilirseniz çok sevinirim. Kolay gelsin.
Varnish sitesinde bu konu ila alakalı dökümanlar mevcut. Mesela: https://www.varnish-software.com/static/book/Cache_invalidation.html