Merhabalar,
Makalemizde Varnish Cache Nedir, Varnish Kurulumu, Varnish Optimizasyonu, Varnish Ayarları, Plesk Konfigürasyonu konularına değineceğiz.
Varnish Cache Nedir ?
Varnish basitçe, yapılan istekleri, belli kurallar ile önbelleğe alıp, istemciye dönen, genelde web sunucuların önünde konumlandırılan servistir. İstekler Varnish’e geliyor, Varnish önbelleğinde varsa isteği buradan dönüyor, eğer yoksa “backend”den fetch ediyor.
İstekler Varnish’e gelir önbelleğinde varsa döner yoksa web sunucusuna gider önbelleğine alır ve buradan isteklere cevap vermeye devam eder. Aynı zamanda Load Balancer görevi de görür. Oldukça esnektir. vcl denilen, javascript syntax’ına yakın bir dil ile gerekli ayarlamaları yapılmaktadır.Facebook’un da kullandığı bir teknolojidir.
Centos Plesk Panel'e Varnish Cache Kurulumu
Öncelikle yapmamız gereken Apache portunu değiştirmek olacaktır.
mysql -uadmin -p$(cat /etc/psa/.psa.shadow) -D psa -e'replace into misc (param, val) values ("http_port", 8088);'
/usr/local/psa/admin/bin/httpdmng --reconfigure-all
Apache portunu örnekteki uygulamada 8088 olarak değiştirdik. Sizlerde kendinize göre bir port belirtebilirsiniz.
nano -w /etc/httpd/conf/httpd.conf
httpd.conf dosyası içerisinde bulunan listen 80 kısmını değiştirmiş olduğumuz port numarasını yazalım.
wget https://dl.fedoraproject.org/pub/epel/6/x86_64/jemalloc-3.6.0-1.el6.x86_64.rpm
rpm -ivv --force jemalloc-3.6.0-1.el6.x86_64.rpm
yum update -y
yum clean all -y
cat << EOF >> /etc/yum.repos.d/varnish.repo
[varnish]
name=Varnish for Enterprise Linux 6
baseurl=https://repo.varnish-cache.org/redhat/varnish-4.0/el6/
enabled=1
gpgkey=https://repo.varnish-cache.org/GPG-key.txt
gpgcheck=1
EOF
yum install -y varnish
Varnish Kontrolünü Gerçekleştirelim.
service varnish status
varnishd -V
Varnish Optimizasyonu ve Ayarları
nano -w /etc/sysconfig/varnish
## Alternative 3, Advanced configuration # # See varnishd(1) for more information. # # # Main configuration file. You probably want to change it :) VARNISH_VCL_CONF=/etc/varnish/default.vcl # # # Default address and port to bind to # # Blank address means all IPv4 and IPv6 interfaces, otherwise specify # # a host name, an IPv4 dotted quad, or an IPv6 address in brackets. # VARNISH_LISTEN_ADDRESS= VARNISH_LISTEN_PORT=80 # # # Telnet admin interface listen address and port VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1 VARNISH_ADMIN_LISTEN_PORT=6082 # # # Shared secret file for admin interface VARNISH_SECRET_FILE=/etc/varnish/secret # # # The minimum number of worker threads to start VARNISH_MIN_THREADS=50 # # # The Maximum number of worker threads to start VARNISH_MAX_THREADS=1000 # # # Idle timeout for worker threads VARNISH_THREAD_TIMEOUT=120 # # # Cache file size: in bytes, optionally using k / M / G / T suffix, # # or in percentage of available disk space using the % suffix. VARNISH_STORAGE_SIZE=256M # # # Backend storage specification VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}" # # # Default TTL used when the backend does not specify one VARNISH_TTL=120 # # # DAEMON_OPTS is used by the init script. If you add or remove options, make # # sure you update this section, too. DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \ -f ${VARNISH_VCL_CONF} \ -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \ -t ${VARNISH_TTL} \ -p thread_pool_min=${VARNISH_MIN_THREADS} \ -p thread_pool_max=${VARNISH_MAX_THREADS} \ -p thread_pool_timeout=${VARNISH_THREAD_TIMEOUT} \ -u varnish -g varnish \ -S ${VARNISH_SECRET_FILE} \ -s ${VARNISH_STORAGE}"
chkconfig --add varnish chkconfig varnish on
Varnish Cache Komutları
varnishlog – Varnish Loglarını Listeler varnishhist – Varnish İsteklerini Listeler varnishstat – Varnish İstatistikleri varnishtop – Varnish Log