[Web server] Setup Varnish cache trên Ubuntu server

I. Varnish là gì?
Varnish Cache là một web application với mục đích tăng tốc web, được biết tới nhưng một caching HTTP reverse proxy. Chúng ta cài đặt nó ở phía trước của bất kỳ server nào sủ dụng HTTP và chúng ta dùng Varnish để cache các content.
Varnish có hiệu suất hoạt động tốt, linh hoạt tùy biến các cấu hình khác nhau dựa vào ngôn ngữ cấu hình VCL (Varnish Configuration Language) và đa nền tảng hỗ trợ: Linux, FreeBSD, NetBSD, OpenBSD, OSX.
II. Cài đặt
1. Cài đặt Varnish:
a. Trên CentOS/RedHat
Step 1. Đăng ký repository với bản phân phối phù hợp:
- Với RHEL 5:
rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el5/noarch/varnish-release/varnish-release-3.0-1.el5.centos.noarch.rpm
- Với RHEL 6:
rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el6/noarch/varnish-release/varnish-release-3.0-1.el6.noarch.rpm
Step 2. Cài đặt từ yum:
yum install varnish
b. Trên Debian/Ubuntu
- Trên Debian:
curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -
echo "deb http://repo.varnish-cache.org/debian/ wheezy varnish-3.0" >> /etc/apt/sources.list
apt-get update
apt-get install varnish
- Trên Ubuntu:
curl http://repo.varnish-cache.org/debian/GPG-key.txt | sudo apt-key add -
echo "deb http://repo.varnish-cache.org/ubuntu/ precise varnish-3.0" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install varnish
c. Cài đặt từ source:
Các phiên bản đầy đủ của varnish được cập nhật liên tục tại link: http://repo.varnish-cache.org/source/
Step 1. Các gói phụ trợ yêu cầu khi cài đặt varnish:
- Trên Debian/Ubuntu:
sudo apt-get install -y autotools-dev automake1.9 libtool autoconf libncurses-dev xsltproc groff-base libpcre3-dev pkg-config
- Trên RedHat/CentOS:
yum install automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig
Step 2. Install
cd varnish-cache
sh autogen.sh
sh configure
make
make install
3. Cấu hình
Tất cả các cấu hình varnish sẽ được thực hiện trong file /etc/varnish/default.vcl (hoặc /usr/local/etc/varnish/default.vcl nếu bạn cài từ source)
a. Backend server:
Chúng ta có thể hiểu backend server là server cung cấp các content để varnish tăng tốc bằng việc caching.
backend default {
    .host = "10.129.128.11";
    .port = "8080";
}
Cấu hình trên thiết lập
b. Varnish Configuration Language - VCL
Varnish có một hệ thống cấu hình rất tuyệt vời với độ tùy biến cao.
Sau đây là một số vcl dùng cho các framework cụ thể:
- VCL Varnish caching cho Liferay portal
Updating...
4. Kiểm tra cấu hình
- Kiểm tra HTTP header
curl -I localhost
- Kiểm tra varnishlog cho các request mà varnish đang phục vụ:
varnishlog | grep TxURL
- Kiểm tra varnishlog cho các request mà varnish chuyển cho backend phục vụ:
varnishlog | grep RxURL
Lưu ý: 
Trong lần load đầu tiên, số RxURL request = TxURL request, trong lần load thứ 2, nếu Varnish cấu hình chính xác thì RxURL request > TxURL request