前言:
接触varnish也是4月份吧,之前对公司的平台架构不是很了解。这个varnish是个web加速器,是一个cache server。公司现在的平台架构配置是将varnish作为电信前端,而后端是另外一台主机(所有的重要的程序和数据库都放在这里),在dnspod域名解析那边,将varnish前端主机的ip解析为后端主机的域名,当然这里需要在varnish上配置default.vcl。这样做的目的,其实也是为了隐藏真正的主机。(可以起到防范作用,防止别人直接攻击目标主机)
原理解析:
我也很想知道原理啊。但是目前还不知道
安装方法:
分两种啦,一种源码编译安装;一种快速安装(通过yum或apt-get install varnish)
使用方法:
1.配置文件:这个varnish有一个配置文件很重要,目前公司的路径为:/usr/local/varnish/etc/varnish/default.vcl。这里配置了所有通过前端主机访问后端的ip和域名以及一些需要缓存的文件等等详细配置。那就把文件贴出来看一下:
上面的配置只是例子。具体详细的配置文件还看我备份在网盘上的吧。这里贴代码老是有问题。csdn的这个编辑器也不是很好用啊
tips:1)上面的配置项中后端主机ip什么的一定要写对。还有一个很容易忽略的细节就是对应的端口一定要成和nginx的虚拟主机的conf文件中的端口号一致。切记,要不然会找不到域名的。页面提示404错误
2)在nginx那边配置完conf文件后。记得平滑重启下,让其生效nginx -s reload
2.启动和关闭进程
关闭进程的命令为:pkill varnishd
启动进程的命令为:/usr/local/varnish/sbin/varnishd -f /usr/local/varnish/etc/varnish/default.vcl -a 0.0.0.0:80 -s malloc,2G -t 3600 -T 0.0.0.0:3500 -p thread_pools=8 -p thread_pool_max=8000 -p thread_pool_min=100 -p http_resp_hdr_len=8192 -p http_max_hdr=256 -p thread_pool_timeout=10 -p listen_depth=4096 -p nuke_limit=512 -w 1024,65535,10
tips:要想知道这个启动命令到底是什么意思。还得看文档才能知道,上面会有详细的解释。
下图为参数解释:
3.添加开机自启动varnish
varnish缓存前端-80口,为了在启动时启动varnish服务,我们在/etc/rc.local中增加了启动代码,从启动代码可以知道varnish的规则配置文件和日志位置信息等
配置信息代码如下: