linux下varnish4安装

Varnish是一种网站加速(反向代理,缓存服务器)。可使用Varnish实现网站动静分离,负载均衡,页面缓存,请求过滤(简单防采集等)。

Varnish官网:https://www.varnish-cache.org/

安装版本:Varnish Cache 4.0.3

下载地址:https://www.varnish-cache.org/content/varnish-cache-403

注意:Varnish网站有时会被墙。

Git 下载:

git clone https://github.com/varnish/Varnish-Cache /var/tmp/


依赖: 地址:https://www.varnish-cache.org/docs/4.0/installation/install.html


linux 版本为:Debian / Ubuntu

依赖包:红色不用安装,yum中好像也不存在

automake
autotools-dev
libedit-dev
libjemalloc-dev
libncurses-dev
libpcre3-dev
libtool
pkg-config
python-docutils
python-sphinx


linux 版本为:Red Hat / CentOS

依赖包:红色不用安装,yum中好像也不存在

autoconf
automake
jemalloc-devel
libedit-devel
libtool
ncurses-devel
pcre-devel
pkgconfig
python-docutils
python-sphinx


部分缺失包报错 ./configure 编译状态:

1
2
configure: error: no acceptable C compiler found  in  $PATH
See `config.log'  for  more  details

缺少 gcc 类的编译工具



1
configure: error: rst2man is needed to build Varnish, please  install  python-docutils.

缺少  python-docutils


1
configure: error: requires an X /Open-compatible  Curses library

缺少  ncurses-devel


1
2
3
4
5
6
7
8
checking  for  PCRE... no
configure: error: Package requirements (libpcre) were not met:
No package  'libpcre'  found
Consider adjusting the PKG_CONFIG_PATH environment variable  if  you
installed software  in  a non-standard prefix.
Alternatively, you may  set  the environment variables PCRE_CFLAGS
and PCRE_LIBS to avoid the need to call pkg-config.
See the pkg-config  man  page  for  more  details.

缺少 pcre-devel


1
configure: error: neither libedit nor another readline compatible library found

缺少 libedit-devel


部分 ./autogen.sh 错误状态:

1
2
. /autogen .sh: line 29: automake:  command  not found
WARNING: unable to determine automake version

缺少 automake,autoconf (这两个包使用yum 是一起安装的)


1
2
+ libtoolize --copy --force
. /autogen .sh: line 44: libtoolize:  command  not found

缺少 libtool



下载:


wget https://repo.varnish-cache.org/source/varnish-4.0.3.tar.gz


解压:


tar -zxvf varnish-4.0.3.tar.gz


进入解压目录编译安装:


./autogen.sh    如果从Git库下载的安装包时才需要运行,用于生成configure编译文件。


./configure     --prefix=/var/varnish/  指定安装目录,可选项


make


make install


复制 vcl 文件(在编译安装目录下),如果安装目录里没有 default.vcl 文件。

复制到安装目录的var/varnish/目录下(当然并无必需要求在哪个目录,因为正式启动时还得指定这个文件的目录)

cp etc/example.vcl /var/varnish/var/varnish/default.vcl   


进入安装目录


编辑复制的vcl文件(如果要修改转向端口号或HOST地址,默认端口号为8080),否则跳过。


vi var/varnish/default.vcl


修改下转向端口

1
2
3
4
backend default {
     .host =  "127.0.0.1" ;
     .port =  "8080" ;
}

如果有安装 apache或nginx 得先关闭并且修改监听端口改为8080 (设置与varnish转向端口相同),然后启动 apache或nginx。


启动varnish (注意端口号不能被占用)


sbin/varnishd -f var/varnish/default.vcl -s malloc,1G -T 127.0.0.1:2000 -a 0.0.0.0:80


打开浏览输入地址: 127.0.0.1 或 localhost

wKioL1VAPgjDYZZRAAQNIoSpDFY267.jpg


./sbin/varnishd 启动参数说明:

官方地址 :https://www.varnish-cache.org/docs/4.0/reference/varnishd.html


-a address[:port][ -a address[:port][...]


监听指定的地址和端口的客户端请求。 该地址可以是主机名(“localhost”的),一个IPv4点分四组(“127.0.0.1”),或方括号括起来的IPv6地址(“[:: 1]”)。 如果未指定地址,varnishd将监听所有可用的IPv4和IPv6接口。 如果没有指定端口,如在/ etc列出的默认HTTP端口/服务的使用。 可多个监听地址和端口。如果指定了本地的地址则只能在本地访问。


-b host[:port]


使用指定的主机作为后端服务器。 如果没有指定端口,默认为8080。类似 -f 的VCL文件中backend命令可以指定反向入口地址与端口,但只能指定一个。是一个快捷启动方式。不能与 -f 同时存在


-C


打印编译成C语言和退出VCL代码。 指定VCL文件编译使用-f选项。


-d 


启用调试模式:父进程运行在与标准输入/输出一个CLI连接的前景,和子进程必须明确使用CLI命令启动。 终止父进程也将终止子。


-f config


使用指定的VCL配置文件代替内置的默认值。不能与 -b 同时存在,但必需指定一个,否则服务无法启动


-F


在当前终端运行,会占用当前终端操作界面。


-g group


指定一个非特权组,它开始接受连接之前,子进程应该切换的名字。 这是用于指定组的运行时参数的快捷方式。


-h type[,options]


指定的哈希算法。 hash列表类型,以及长度.默认长度是16383.。


-i identity


指定服务器的身份。 这可以通过使用server.identity从VCL被访问


-l shl[,free[,fill]]


指定shmlog文件的大小。 shl 是共享内存日志记录(默认80M),free 是空闲空间,fill 是已经使用空间。内存大小可以设置‘K’,'M' 等。


-M address:port


连接到这个端口,并提供了命令行界面。 把它看成是一个反向的外壳。 当与-M运行并没有定义的子进程后端(缓存)将无法启动初期。


-n name


临时文件实例名.如果以"/"开头,就必须是一个可用的路径. 


-P file


写进程的PID到指定的文件。


-p param=value


设定参数指定为指定的值,参见运行时参数的参数列表。此选项可以多次使用,以指定多个参数。


-r param[,param...]


使列出的参数只读。用来保护参数。参见运行时参数的参数列表。


-s [name=]type[,options]


缓存设置,有三种方式:

malloc[,size]     (内存+swap交换模式)
file[,path[,size[,granularity]]]   (文件形式)
persistent,path,size    (文件形式)


Malloc (malloc) 通过 malloc 获取内存,简单,速度快
Mmap file (file) 创建文件缓存
这个是varnish缓存的两种方式,可以在启动的时候通过参数指定。


granularity用于设定缓存空间分配单位,默认单位是字节,所有其它的大小都会被圆整。

size 是指定空间大小,可以是G,M,K等。

path 是文件目录



-T address[:port]


管理器端口。CLI 入口地址与端口,使用 talnet 命令可以进入 CLI 界面管理服务器,也可以使用varnishadm


-t ttl


指定缓存文件。 这是用于指定default_ttl运行时参数的快捷方式。


-u user


指定一个非特权用户,接受连接之前,子进程应该切换的名字。 这是指定的用户运行时参数的快捷方式。
如果同时指定用户和组,用户应先规定。


-V


显示版本号并退出。


停止varnish


pkill varnishd  (直接杀死进程,只能使用上面的命令启动varnish)

或者

varnishadm stop   (需要进入安装目录的bin目录下,只是关闭了子进程,可以使用varnishadm start 再次开启服务或者使用上面的启动命令)

本文转自  ttlxihuan    51CTO博客,原文链接:http://blog.51cto.com/php2012web/1640182



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值