Virnash

一、虚拟机封装

1.安装无图形化虚拟机
mem=512(默认选择无图形化安装)
GiB=20(虚拟硬盘disk,内存大一点)
选择语言、时区、ip6(不选)、修改密码
2.配置虚拟机

cd /etc/udev/rules.d (删除70-*文件)
 vi /etc/sysconfig/network-scripts/ifcfg-eth0
    (注意:网络状态static)
 /etc/init.d/network restart ##重启网络
 vi /etc/yum.repo.d/rhel*   ##配置yum源
   baseurl=真机yum地址
   enabled=1
 yum install vim lftp
 vim /etc/sysconfig/network ##永久修改主机名
 vim /etc/hosts         ##设置本地域名解析
 /etc/init.d/iptables stop  ##关闭防火墙
 chkconfig --list iptables  ##查看火墙状态
 chkconfig iptables off     ##关闭火墙开机自启
 SELINUX=disabled       ##设置selinux

 virt-sysprep -d base0   ##清理base0虚拟机
 关闭封装的虚拟机base

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
3.子镜像建立

[root@foundation10 images]# qemu-img create -f qcow2 -b base-1.qcow2 test1
Formatting 'test1', fmt=qcow2 size=17179869184 backing_file='base-1.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 
[root@foundation10 images]# qemu-img info test1 
image: test1
file format: qcow2
virtual size: 16G (17179869184 bytes)
disk size: 196K
cluster_size: 65536
backing file: base-1.qcow2
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@foundation10 images]# qemu-img create -f qcow2 -b base-1.qcow2 test2
Formatting 'test2', fmt=qcow2 size=17179869184 backing_file='base-1.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 
[root@foundation10 images]# qemu-img create -f qcow2 -b base-1.qcow2 test3
Formatting 'test3', fmt=qcow2 size=17179869184 backing_file='base-1.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 

4.创建虚拟机
导入子镜像,选择linux操作系统,版本选择6.5,登入查看信息

二、 CDN

varnish 服务的机制是反向代理

1.varnish

Varnish 是一个 web 加速器,被安装在 web 应用程序前面,缓存 web 应用程序,并响应用求,varnish 让您的 web 应用程序运行的更快,并且 varnish 灵活好用。

2.varnish的功能:

a: 一套缓存系统,在CDN中扮演web缓存的角色,性能和响应时间更优越,语法简单,可以实现很多定制化,而HAProxy无缓存
b:反代是最基本的功能,自然具备
c:可以实现动静分离
d:可以实现负载均衡

3.VCL简介:

Varnish Configration Lnguage, 是varnish配置缓存策略的一种基于‘域‘的简单编程语言。使用VCL编写的缓存策略通常保存在.vcl文件中,其需要编译成 二进制文件才能被varnish调用。

4.vcl函数
配置一个后端服务器
server1
1.安装varnish,varnish-libs

2.修改varnish配置文件
/etc/sysconfig/varnish  端口:80
  /etc/varnish/default.vcl
backend default {
  .host = "172.25.10.2";
  .port = "80";
}
3.查看缓存命中情况(/etc/varnish/default.vcl)
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);
}

[root@server1 ~]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is boot
Using new config name reload_2018-06-19T23:07:40
VCL compiled.

available       2 boot
active          0 reload_2018-06-19T23:07:40

Done

[root@foundation10 ~]# curl -I 172.25.10.1
HTTP/1.1 200 OK
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Tue, 19 Jun 2018 13:30:01 GMT
ETag: "c0e04-18-56efeaddada92"
Content-Type: text/html; charset=UTF-8
Content-Length: 24
Accept-Ranges: bytes
Date: Tue, 19 Jun 2018 13:42:39 GMT
X-Varnish: 1298813625 1298813624
Age: 35
Via: 1.1 varnish
Connection: keep-alive
X-Cache: HIT from westos cache  ## 命中

MISS from westos cache #未命中

4.开启服务
/etc/init.d/varnish start 
server2
1.安装http服务
2.配置默认发表文件

这里写图片描述

定义多个不同域名站点的后端服务器
内核、操作系统、软件:
    修改限制文件,保证流量大时。服务正常运行
1.修改配置文件(/etc/varnish/default.vcl)
backend web1 {
##访问web1时,指向172.25.10.2
.host = "172.25.10.2";
.port = "80";
}

backend web2 {
 ##访问web1时,指向172.25.10.3
.host = "172.25.10.3";
.port = "80";
}

sub vcl_recv {
##www.westos.org和westos.org指向同一地址,节省varnish空间
##实质上,域名不同,varnish缓存地址不同
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = web1;
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}

sub vcl_deliver { 
##第一次访问时MISS,后续访问HIT,varnish默认清楚时间120s
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);
}

2.查看配置是否正确
[root@server1 ~]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is boot
Using new config name reload_2018-06-19T23:07:40
VCL compiled.

available       2 boot
active          0 reload_2018-06-19T23:07:40

Done
## 配置正确
3.重启服务
[root@server1 ~]# /etc/init.d/varnish restart
Stopping Varnish Cache:                                    [  OK  ]
Starting Varnish Cache:                                    [  OK  ]
server2
1.安装httpd服务
2./var/www/html/index.html
 <h1>www.westos.com</h1>

server3
1.安装httpd服务
2./var/www/html/index.html
 <h1>bbs.westos.org</h1>
物理主机:
用物理主机访问时,作域名解析
172.25.10.1  bbs.westos.org www.westos.org westos.org

这里写图片描述
这里写图片描述

负载均衡和健康检查
server1
1.修改配置文件 /etc/security/limits.conf
varnish         -       nofile          131073
varnish         -       memlock         102400
varnish         -       nproc           unlimited
2.修改配置文件(/etc/varnish/default.vcl)
backend web1 {
.host = "172.25.10.2";
.port = "80";
}

backend web2 {
.host = "172.25.10.3";
.port = "80";
}
##负载均衡
director lb round-robin {
{       .backend = web1;        }
{       .backend = web2;        }
}

sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = lb;   ##调用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);
}
3.检测配置是否正确
[root@server1 ~]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is boot
Using new config name reload_2018-06-19T23:20:00
VCL compiled.

available       1 boot
active          0 reload_2018-06-19T23:20:00

Done

4.重启服务
[root@server1 ~]# /etc/init.d/varnish restart
Stopping Varnish Cache:                                    [  OK  ]
Starting Varnish Cache:                                    [  OK  ]
server2主机
Apache默认发布文件
<h1>www.westos.org-server2</h1>
server3主机
配置虚拟主机( vim /etc/httpd/conf/httpd.conf)
NameVirtualHost *:80  ##打开虚拟主机功能
<VirtualHost *:80>
        DocumentRoot /var/www/html
        ServerName bbs.westos.org
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot /www/html
        ServerName www.westos.org
</VirtualHost>

本机测试: ##本地做域名解析
[root@server3 html]# vim /etc/hosts
172.25.10.3 server3 www.westos.org bbs.westos.org

[root@server3 html]# cat index.html 
<h1>www.westos.org</h1>
[root@server3 html]# cat /www/html/index.html
<h1>www.westos.org-server3</h1>

[root@server3 ~]# curl www.westos.org
<h1>www.westos.org-server3</h1>
[root@server3 ~]# curl bbs.westos.org
<h1>bbs.westos.org</h1>

这里写图片描述
这里写图片描述

推送管理

server1主机
1.安装httpd,php,unzip
2.修改httpd端口8080后,启动http服务
 Listen = 8080
3.默认发布目录/var/www/html下解压 bansys.zip;并移动解压后的文件到/var/www/html/
[root@server1 html]# unzip bansys.zip 
[root@server1 html]# ls
bansys  bansys.zip
[root@server1 html]# cd bansys
[root@server1 bansys]# ls
class_socket.php  config.php  index.php  purge_action.php  static
[root@server1 bansys]# mv * ..
[root@server1 bansys]# cd ..
[root@server1 html]# ls
bansys      class_socket.php  index.php         static
bansys.zip  config.php        purge_action.php
[root@server1 html]# rm -fr bansys
[root@server1 html]# rm -fr bansys.zip 
[root@server1 html]# ls
class_socket.php  config.php  index.php  purge_action.php  static

3.修改配置文件(/etc/varnish/default.vcl)
acl westos {
"127.0.0.1";
"172.25.10.0"/24;
}

backend web1 {
.host = "172.25.10.2";
.port = "80";
}

backend web2 {
.host = "172.25.10.3";
.port = "80";
}

director lb round-robin {
{       .backend = web1;        }
{       .backend = web2;        }
}
sub vcl_recv {

if (req.request == "BAN") {
if (!client.ip ~ westos) {
error 405 "Not allowed.";
}
ban("req.url ~ " + req.url);
error 200 "ban added";
}

if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = lb;
} 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);
}

4.server2,server3 配置不变

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值