Varnish反向代理+负载均衡
Varnish:可用来部署反向代理服务,将静态数据缓存在内存中,响应速度快,但是不支持数据持久化,可以对缓存的数据的缓存时间精确到秒,使用VCL进行管理、支持状态引擎、自带日志、监控、命令行管理模式等工具
varnish的特点
1、数据缓存在内存中,速度比较快,支持虚拟内存,I/O性能好,能够很好的嵌入到磁盘当中
2、数据不支持持久化,断电或者重启后,数据会丢失(存放不必要的数据)
3、varnish支持精确到秒的缓存
4、支持vcl管理
5、抗DDOS攻击,1个varnish可以抗1个G的DDOS攻击
varnish负载均衡调度算法:
round_robin 动态轮询 rr
fallback 选择第一个正常的服务器
random:随机
hash:会话保持
服务器信息
| IP | 环境 |
|---|---|
| 172.16.1.12 | Varnish |
| 172.16.1.13 | WEB-One |
| 172.16.1.14 | WEB-Two |
| 172.16.1.15 | Client |
varnish反向代理
最终效果
客户机通过访问varnish代理服务器,获取web终端的页面
部署varnish
解决依赖关系
1 | yum -y install automake autoconf libtool pkgconfig graphviz ncurses-devel pcre-devel |
以下包需要单独拖入
1 | rpm -ivh jemalloc-devel-5.2.0-1.1.x86_64.rpm --nodeps |
解压varnish安装包
1 | tar zxf varnish-4.1.11.tgz -C /usr/src |
命令路径优化
1 | ln -s /usr/local/varnish/sbin/* /usr/local/sbin |
复制配置文件模板
1 | cp /usr/local/varnish/share/doc/varnish/example.vcl /usr/local/varnish/default.vcl |
编辑varnish配置文件
1 | vim /usr/local/varnish/default.vcl |
启动服务
1 | varnishd -f /usr/local/varnish/default.vcl # 使用配置文件启动 |
部署web-one服务器
因为是实验环境,所以直接使用yum安装
1 | yum -y install httpd |
部署web-two服务器
因为是实验环境,所以直接使用yum安装
1 | yum -y install httpd |
验证
为了更直观的看到是由varnish来获取的页面,所以监听varnish的日志和http的访问日志
varnish反向代理服务器:varnishlog
web服务器:tail -f /var/log/httpd/access_log
客户机:curl 172.16.1.12(varnish反向代理)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 SeMaik!
