varnish服务配置
来源:互联网 发布:python 教务系统 编辑:程序博客网 时间:2024/06/04 19:39
虚拟机封装
进行网络安装http://172.25.254.22/rhel6.5(需要dhcp提供ip)
RAM:512M drive:20GB
可通过df -h进行内存查看
安装重启后:cd家目录 --->rm *
更改主机名vi /etc/sysconfig/network
hostname server1-->临时生效
更改yum源 vi /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.22/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
yum clean all
yum install vim lftp openssh-clients(进行scp) -y
cd /etc/udev/rules.d/
rm -rf 70-persistent-net.rules
设置ip
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"
#IPADDR=172.25.22.3
#PREFIX=24
vim /etc/hosts设置dns
rm -f /etc/ssh/ssh_host_*
rm -f /etc/sysconfig/iptables
chkconfig iptables off
vim /etc/sysconfig/selinux enforce-->disabled
关机poweroff
在真实主机root用户下:cd /var/lib/libvirt/images
qemu-img create -f qcow2 -b base.qcow2 vm1 512M
qemu-img create -f qcow2 -b base.qcow2 vm2 512M
qemu-img create -f qcow2 -b base.qcow2 vm3 512M
删除虚拟控制台中的base图表(不要删除真实文件),添加三个快照,并进行主机名,yum源(172.25.22.250/rhel6.5),ip配置,/etc/init.d/networkrestart
配置varnish服务
在vm1中通过lftp下载这两个安装包
varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm
yum install * -y
vim /etc/sysconfig/varnish
VARNISH_LISTEN_PORT=80(监听端口改为80,设置完成后,可netstat -antlp命令进行查看)
vim /etc/varnish/default.vcl
定义多个不同域名站点的后端服务器
backend web1 {
.host ="172.25.70.2";
.port = "80";
}
backend web2 {
.host ="172.25.70.3";
.port = "80";
}
把多个后端聚合为一个组,并检测后端健康状况
director lb round-robin {
{.backend = web1;}
{.backend = web2;}
}
当访问 www.westos.org域名时从web1上取数据,访问 bbs.westos.org 域名时到web2取数据,访问其他页面报错
sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = lb;
return (pass);为了测试方便,不进行缓存
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}
查看缓存命中情况
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}
在vm2中yum install httpd -y
/etc/init.d/httpd start
vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80(端口改为80)
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName server2
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/bbs
ServerName bbs.westos.org
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/westos
ServerName www.westos.org
</VirtualHost>
mkdir /www/westos
echo server2-www.westos.org > /www/westos/index.html
/etc/init.d/httpd restart
在vm3中yum install httpd -y
/etc/init.d/httpd start
echo '<h1>server3-www.westos.org</h1> >/var/www/html/index.html
### 通过 varnishadm手动清除缓存
# varnishadm ban.url .*$ 清除所有
# varnishadm ban.url /index.html 清除 index.html 页面缓存
# varnishadm ban.url /admin/$ 清除 admin目录缓存
varnishadm ban.url www.westos.org #清除www.westos.org的网络缓存
在测试主机上做好本地解析(vim /etc/hosts)
执行curl -I www.westos.org进行检测
在vm1上
yum instll httpd unzip php -y
unzip bansys.zip -d /var/www/html
vim /etc/httpd/conf/httpd.conf将Listen 80改为 8080
/etc/init.d/httpd start
cd /var/www/html/bansys/
mv * ..
cd /var/www/html
rm -rf bansys/
vim config.php
将数据库信息进行注释
$var_group1 = array(
'host'=> array('172.25.0.1',),
'port'=> '80',
);
$VAR_CLUSTER = array(
'www.westos.org'=>$var_group1,
);
vim /etc/varnish/default.vcl
设置访问控制
acl westos {
"127.0.0.1";
"172.25.0.0"/24;
}
在 sub vcl_recv中加入
if (req.request == "BAN") {
if (!client.ip ~ westos) {
error 405 "Not allowed.";
}
ban("req.url ~ " + req.url);
error 200 "ban added";
}
/etc/init.d/varnish reload
在测试机上访问172.25.70.1:8080就会进入cdn推送管理页面进行测试
- 配置varnish服务
- varnish服务配置
- 缓存服务varnish安装配置
- varnish 配置笔记(varnish添加到系统服务里)(转)
- 将Varnish配置为Centos的服务
- 缓存服务varnish 3.0安装配置
- Varnish+Nginx 配置----Varnish
- varnish配置
- Varnish配置
- varnish 配置
- varnish cache 配置使用
- varnish cache 配置使用
- varnish安装配置全过程
- haproxy + varnish cache配置
- Linux+varnish安装配置
- varnish安装配置
- Varnish简单配置
- varnish安装配置
- 数组——基本概念
- 主席树入门学习
- jquery event type
- python3 数据类型归纳
- Android Widget 开发详解(二)——支持listView滑动的widget
- varnish服务配置
- HTML入门笔记12-HTML中备注写法
- java错误:java.lang.IncompatibleClassChangeError: Implementing class
- AsyncTask源码解析
- QTabWidget简例/简介及各种问题
- springmvc和struts2的区别
- 计算一个整数二进制位中1的个数
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
- 安卓面试(2)