Trong bài trước mình đã giới thiệu cách cài Varnish 6.2 trên CentOS 7, trong bài này mình sẽ thử cấu hình varnish cache 6 cho Nginx nhé. Sau khi cấu hình xong Varnish sẽ làm reserve HTTP proxy cho Nginx theo mô hình sau.
Reserve Proxy là gì?
Reserve Proxy, còn được gọi là Reserve HTTP proxy, là dịch vụ nằm giữa client và webserver.
Chức năng của Reserve Proxy là:
- Tăng tốc độ website
- Làm bộ đệm cho website
- Cân bằng tải.
- Tăng bảo mật.
Cấu hình Varnish Cache 6 cho Nginx
Chuẩn bị
- Một VPS đã cài đầy đủ các thành phần như Nginx, PHP….và mình thường dùng VPSSIM để cài toàn bộ các thành phần trên cho nhanh. VPS các bạn có thể mua ở Vultr, Digital Ocean, Azdigi… tùy ý nhé.
- Tên miền tenmien2019.ml để làm demo đã cài sẵn wordpress cũng bằng VPSSIM. Đừng quên trỏ tên miền về ip của VPS nha.
Cấu hình Nginx
Mặc định thì Nginx hoạt động trên port 80 và bạn có thể kiểm tra bằng lệnh sau
netstat -ntlup
Lúc này bạn cần cấu hình để Nginx hoạt động trên port 8080. Vì mình dùng VPSSIM cài Nginx nên bạn mở 2 file sau lên:
- tenmien2019.ml.conf
- vpssim.demo.conf
bằng lệnh
nano /etc/nginx/conf.d/tenmien2019.ml.conf
nano /etc/nginx/conf.d/vpssim.demo.conf
tìm tới dòng listen 80 đổi thành listen 8080 và lưu lại (Ctrl + o)cả 2 file trên rồi thoát trình chỉnh sửa bằng Ctrl +x.
Khởi động lại Ngixn:
service nginx reload
Kiểm tra lại port của Nginx đã chính xác chưa nhé.
netstat -ntlup
Nginx không còn listen trên port 80 nữa là Ok nhé.
Lưu ý: Nếu bạn kiểm tra mà vẫn thấy Nginx còn họat động trên port 80 thì bạn vẫn hãy xem lại các file cấu hình Nginx nhé, bởi nếu ở bước này mà nginx vẫn còn listen trên port 80 thì bạn sẽ không cấu hình được Varnish hoạt động đâu nhé.
Cấu hình Varnish
Vì Varnish sẽ hoạt động như một Reserve HTTP proxy nên bạn cần cấu hình để Varnish hoạt động trên port 80 nhé.
Mở trình chỉnh sửa file varnish.service bằng lệnh sau:
nano /usr/lib/systemd/system/varnish.service
Tìm tới dòng sau
ExecStart=/usr/sbin/varnishd -a :6081 -f /etc/varnish/default.vcl -s malloc,256m
Và đổi port 6081 thành 80. Lúc này ta sẽ có
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
Sau khi sửa xong bạn thoát ra và khởi động Varnish bằng lệnh
service varnish start
Kiểm tra trạng thái của Varnish bằng lệnh
service varnish status
Ok như thế là Nginx và Varnish đã hoạt động suôn sẻ và chưa thấy lỗi gì, lúc này bạn có thể kiểm tra lại port của Varnish và Nginx.
Lúc này để kiểm tra xem Varnish đã thực sự hoạt đông chưa bạn có thể kiểm tra header của domain bằng lệnh:
wget -SS tenmien2019.ml
Bạn sẽ nhìn thấy các thông số như:
X-Varnish: 65556 65554
Via: 1.1 varnish (Varnish/6.2)
Tức là Varnish đã và đang hoạt động.
mình sửa file conf rồi mà port vẫn không đôi nhỉ.
Cài varnish rồi có cần cài thêm plugin cache nào nữa không ạ? Vd như wp rocket hay cache enabler,…?
Khuyên bạn cài thêm WP Rocket nhé.
Nếu vps chạy nhiều site thì có cài varnish cache được không ạ?
Được nha bạn, nhưng mình nghĩ là vẫn có nhiều cách khác ngoài varnish cache, vì Varnish tuy tốt thật nhưng lại chưa hỗ trợ https, vẫn có thể dùng https với varnish được nhưng cách cấu hình mình vẫn chưa thành công :D
da co cach cai voi https chua ad
Vẫn chưa bạn à :D