本人对varnish也是新手,这里记录一下安装步骤!

环境:centos6.6

varnish安装包下载:wget https://repo.varnish-cache.org/source/varnish-3.0.7.tar.gz

先上我的拓扑图 (基础拓扑为LVSDR环境)  LVS不在这里讲解

安装

yum -y install gcc gcc-c++ make autoconf automake
yum -y install automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig readline-devel
tar -zxf varnish-3.0.7.tar.gz
cd varnish-3.0.7
./configure --prefix=/usr/local/varnish
make;make install

拷贝文件到系统

cp redhat/varnish.initrc /etc/init.d/varnish
cp redhat/varnish.sysconfig /etc/sysconfig/varnish
cp redhat/varnish_reload_vcl /usr/local/varnish/bin

修改varnish配置文件

vim /etc/sysconfig/varnish

修改为如下内容 (里面有许多varnish的性能配置)

VARNISH_VCL_CONF=/usr/local/varnish/etc/varnish/default.vcl

VARNISH_LISTEN_PORT=80

VARNISH_SECRET_FILE=/usr/local/varnish/etc/varnish/secret

vim /etc/init.d/varnish

pidfile=/var/run/varnish.pid
exec="/usr/local/varnish/sbin/varnishd"
reload_exec="/usr/local/varnish/bin/varnish_reload_vcl"
# Done parsing, set up command
VARNISHADM="/usr/local/varnish/bin/varnishadm $secret -T $VARNISH_ADMIN_LISTEN_ADDRESS:$VARNISH_ADMIN_LISTEN_PORT"

注:也可以将/usr/local/varnish/bin添加到系统的PATH中,这样就不需要编辑varnish_reload_vcl

生成varnish管理秘钥:

/usr/bin/uuidgen > /usr/local/varnish/etc/varnish/secret
chmod 644 /usr/local/varnish/etc/varnish/secret

VCL配置(对应拓扑图)

vim /usr/local/varnish/etc/varnish/default.vcl

backend web1 {
.host = "192.168.0.38";
.port = "80";
.connect_timeout = 1s;
.first_byte_timeout = 5s;
.between_bytes_timeout = 2s;
} backend web2 {
.host = "192.168.0.162";
.port = "80";
.connect_timeout = 1s;
.first_byte_timeout = 5s;
.between_bytes_timeout = 2s;
} director syw_web random {
{ .backend = web1; .weight =2; }
{ .backend = web2; .weight =2; } } #clean cache
acl purge {
"localhost";
"127.0.0.1";
"192.168.0.162";
"192.168.0.167";
} sub vcl_recv {
if (req.http.host ~ "^192.168.0.193"){
set req.backend = syw_web;} if (req.request == "PURGE") {
if (!client.ip ~purge) {
error 405 "Not Allowed";
}
return(lookup); #find localhost cache
} if (req.request == "GET" && req.url ~ "\.(png|swf|txt|png|gif|jpg|css|js|htm|html)$") {
unset req.http.cookie;
} if (req.url ~ "^/images") {
unset req.http.cookie;
} #if (req.http.Cache-Control ~ "(no-cache|max-age=0)"){
# purge_url(req.url);
#}
# return (lookup); #获取客户端ip
# if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For + ", " + client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}
# }
}
检查VCL配置是否正确:
/etc/init.d/varnish configtest

/usr/local/varnish/sbin/varnishd -C -f /usr/local/varnish/etc/varnish/fdfs.vcl #启动varnish: service varnish start #查看varnish状态: /etc/init.d/varnish status # 动态加载VCL配置: /etc/init.d/varnish reload # 停止varnish: /etc/init.d/varnish stop

先就说这么多吧

更多精华请参考

http://www.it165.net/admin/html/201405/2999.html

http://www.51itstudy.com/30132.html

最新文章

  1. PHP安全性
  2. C++11角括号
  3. HDU 1504 Disk Tree
  4. A Tour of Go Basic types
  5. 如何实例化i2c_client(四法)
  6. deep learning 学习资料
  7. (转载)ubuntu安装pyton-pip问题解决
  8. 浅尝key-value数据库(二)——MongoDB的优与劣
  9. 洛谷 [P1426] 通往奥格瑞玛的道路
  10. CSS后代选择器“空格”和“>”的使用辨析
  11. AWS deepracer
  12. Linux下安装gradle
  13. pandas数据清洗策略1
  14. libmysqlclient.so.18: cannot open shared object file
  15. Docker 入门 第五部分:Stacks
  16. 性能测试七:jmeter进阶之文件上传下载、定时器
  17. mysql 查询进程和关闭进程
  18. 使用命令行打包 nuget 包
  19. 【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】
  20. 打印机 KX-MB788CN 佳能

热门文章

  1. Loadrunner中参数化实战(9)-Unique+Once
  2. An easy problem
  3. Angular.js 以及个人学习网站
  4. 记一次小团队Git实践(上)
  5. 用val()获取与设置input的值
  6. psql-02基本语法
  7. Ubuntu12.04安装搜狗输入法失败后,出现登录界面循环
  8. DP(记忆化搜索) + AC自动机 LA 4126 Password Suspects
  9. 安装配置hive中遇到的问题
  10. ACM 田忌赛马