varnish服务yum安装及不同域名站点
开启三台虚拟机 实战:使用varnish加速多个不同域名站点的web服务器 varnish:192.168.80.100 //需要联网 web1:192.168.80.101——www.aa.com web2:192.168.80.102——www.bb.com
三台服务器全都要操作 systemctl stop firewalld //关闭防火墙 setenforce 0 //关闭监控 yum安装varnish cd /etc/yum.repos.d/ mv back/* ./ 1.安装varnish(从Centos7开始,varnish已被收入到epel仓库) yum install epel-release -y //需要联网 yum -y install varnish 2.新建varnish用户 useradd -M -s /sbin/nologin varnish 3.varnish配置文件 vi /etc/varnish/varnish.params //主配置文件 vi /etc/varnish/default.vcl //VCL配置文件 sub vcl_recv{ if (req.http.host ~ "(?i)^(www.)?aa.com$") { set req.http.host = "www.aa.com"; set req.backend_hint = web1; } elsif (req.http.host ~ "(?i)^www.bb.com$") { set req.backend_hint = web2; return(hash); } } 判断当访问www.aa.com域名时从web1上取数据,访问www.bb.com域名是到web2取数据。 #添加一个Header标识,以判断缓存是否命中 sub vcl_deliver { if (obj.hits > 0) { set resp.http.X-Cache = "HIT FROM" + req.http.host; set resp.http.X-Cache-Hits = obj.hits; } else { set resp.http.X-Cache = "MISS FROM" + req.http.host; } return (deliver); } 重启varnish systemctl restart varnish vi /etc/hosts 192.168.80.100 www.aa.com 192.168.80.100 www.bb.com yum install -y elinks //安装elinks elinks www.aa.com --dump #elinks文本界面浏览器 或者:在windows中查找 在另一台虚拟机搭建一个web服务器:web1(80.101) yum install httpd -y //安装http vi /etc/httpd/conf/httpd.conf 把 ServerName www.example.com:80 前面的#删除 vi /var/www/html/index.html <h1>server 1</h1> systemctl start httpd 在另一台虚拟机搭建一个web服务器:web2(80.102) yum install httpd -y //安装http vi /etc/httpd/conf/httpd.conf 把 ServerName www.example.com:80 前面的#删除 vi /var/www/html/index.html <h1>server 2</h1> systemctl start httpd 最后在浏览器上输入www.bb.com ———————————————————————————————————————— VCL Varnish Configuration Language (VCL) 是一种动态语言,是varnish配置语言,用来描述请求处理和制定缓存策略。vcl配置内容由manager process 创建的VCC子进程转换成C语言代码,再经由gcc编译成共享对象,最后装载到cacher process中生效。 VCL文件被分为多个子程序,不同的子程序在不同的时间里执行,比如一个子程序在接到请求时执行,另一个子程序在接受到后端服务器传送的文件时执行。 VCL处理流程图
语法 (1)支持注释 // # /* */ (2)不支持循环 (3)sub $name:用于定义子例程 sub vcl_recv { } (4)有众多内置的变量,变量的可调用位置与state engine有密切相关性 (5)支持终止语句,return(action),没有返回值 (6)"域"专用 (7)操作符 =,==,!,&&,|| 常用语句 if else set name=value unset name req.http.HEADER:调用请求报文中http协议的指定的变量 req.request:请求方法
常用变量:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- angular 4无法读取未定义的属性“id”
- twitter-bootstrap – React-Bootstrap – 导入模块
- 4.4Webservice
- angularjs – ng-change,ng-click不适用于自v1.3.0以来的da
- bootstrap-table(三)
- 尝试在Angular 2项目中将多个observable合并为一个
- scala – 为什么函数尾不是递归的?
- scala – 为什么“抽象覆盖”不需要在“副本”中“覆盖”?
- /usr/bin/env: bash: No such file or directory 解决办法
- bash – Node.js Shell脚本和参数