linux下varnsih4安装

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 编译状态:

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

缺少 gcc 类的编译工具



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

缺少  python-docutils


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

缺少  ncurses-devel


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


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

缺少 libedit-devel


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

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

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


+ 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


修改下转向端口

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

技术分享


./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 再次开启服务或者使用上面的启动命令)


本文出自 “秋风扫落叶” 博客,请务必保留此出处http://php2012web.blog.51cto.com/5585213/1640182

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。