Varnish是什么
Varnish是一款开源的、高性能的HTTP加速器和反向代理服务器
Varnish能干什么
最主要的功能就是:通过缓存来实现Web访问加速
Varnish特点
- 主要基于内存或者是虚拟内存进行缓存,性能好
- 支持设置精确的缓存时间
- VCL配置管理比较灵活
- 后端服务器的负载均衡和健康检查
- 局部支持ESI
- URL地址重写
- 优雅的处理后端服务器宕机的问题
- 32位机器上缓存大小为最大2GB
安装
Ubuntu
sudo apt-get install varnish
Centos
sudo yum install varnish
运行的基本命令示例
varnishd -f /etc/varnish/default.vcl -s malloc,32M -T 127.0.0.1:2000 -a :1111
解析
1. -f:指定要运行的配置文件
2. -s malloc,32M:-s选项用来确定varnish使用的存储类型和存储容量,这里使用的是malloc类型(malloc是一个C函数,用于分配内存空间)
3. -T 127.0.0.1:2000:指定varnish的管理ip和端口
4. -a :1111:指定varnish对外提供web服务的端口
命令语法:
varnishd [-a address[:port]]
[-b host[:port]] [-d] [-F] [-f config][-g group]
[-h type[,options]] [-i identity]
[-l shmlogsize] [-n name]
[-P file] [-p param=value]
[-s type[,options]] [-T address[:port]]
[-t ttl] [-u user] [-V] [-w min[,max[,timeout]]]
- -a address:[:port][,address]监听指定的IP地址和端口的请求。地址可以是主机名(“localhost”),或者一个IPV4
(“127.0.0.1”),和IPV6(“[::1]”),如果地址没有明确指定,varnishd将监听所有可用的IPV4和IPV6地址。如果端口没有指定,那么varnishd默认监听/etc/services中的HTTP对应的端口。更多的端口和地址使用逗号分隔。 - -b host[:port] :指定后端服务器的地址和接口,如果没有接口,默认是8080
- -C :编译VCL代码成C语言,然后退出,指定VCL文件用-f参数
- -d :开启debug模式。主进程在前段启动,提供一个CLI界面,用于标准输入输出。子进程必须通过CLI命
令启动。如果结束主进程,那么子进程也会结束。 - -F :在前端运行
- -f config :使用指定的VCL配置文件代替系统默认的
- -g group : 指定Varnishd子进程使用的户组
- -h type[,options] :指定hash算法
- -i identity :指定Varnishd server的身份
- -l shmlogsize :指定shmlogfile的大小,单位可以使用‘k’和‘m’,默认是80M,不要指定比80M
小的值 - -n name :为这个实例指定一名字
- -P file :指定pidfile,用于保存PID信息
- -p param=value :设定指定参数的值
- -S file :访问管理端口用到的安全认证文件的路径
- -s [name=]type[,options] :使用指定的存储后端,可以多次使用此选项指定不同的存储类型
- -T address[:port] :提供一个管理接口的地址和端口
- -t ttl :给缓存中的内容指定最小的ttl
- -u user :指定运行varnishd子进程的用户
- -V :显示Varnishd的版本,然后退出
- -w min[,max[,timeout]] :指定线程最小和大空闲时间,这是一个设置thread_pool_min、thread_pool_max和thread_pool_timeout的捷径。如果只有一个值被指定,那么thread_pool_min和thread_pool_max都是用这 个值。Thread_pool_timeout会失效