Linux项目-CDN

cdn:内容分发网络(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。

varnish:Varnish是一款高性能的开源HTTP加速器,用于CDN加速。

实验环境:
三台服务器,一台作为 director,两台作为 real server。
director 内网ip(172.25.20.1),
两个 real server 上只有内网 ip (172.25.20.2) 和 (172.25.20.3),
并且需要把两个 real server 的内网网关设置为 director 的内网 ip(172.25.20.1)

[server1]安装varnish
yum install varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm -y

[server2,server3]配置好两个rs的http(以server2为例)
yum install httpd -y
/etc/init.d/httpd start
Starting httpd: httpd: Could not reliably determine the server’s fully qualified domain name, using 172.25.20.2 for ServerName [ OK ]
默认发布目录建立默认发布文件,作为区别
cd /var/www/html/
echo server2 > index.html

[server1]
vim /etc/sysconfig/varnish
VARNISH_LISTEN_PORT=80  监听端口改为80
vim /etc/varnish/default.vcl 更改主配置文件
backend default {              搭建http服务的虚拟机ip
  .host = "172.25.20.2";
  .port = "80";
}

/etc/init.d/varnish start

sysctl -a | grep file-max ##显示内核最大支持的缓存文件数371487



测试 用物理机curl 172.25.20.1 出现在server2中所写的即为成功


查看最大线程数

sysctl -a | grep file



修改系统重varnish最大线程数

vim /etc/security/limits.conf



修改主配置文件中varnish最大线程数

vim /etc/sysconfig/varnish



查看缓存命中
编辑varnish主配置文件
vim /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);
}

/etc/init.d/varnish reload

[测试]
物理机中:
curl 172.25.20.1
当缓存命中时,执行HIT from westos cache
当缓存不命中时,执行MISS from westos cache

使用 varnishadm ban.url .* 用来清空所有的缓存
使用 varnishadm ban.url .*$
使用 varnishadm ban.url /index.html 用来清空html 缓存

域名访问
vim /etc/varnish/default.vcl
backend web1 {
  .host = "172.25.20.3";
  .port = "80";
}

backend web2 {
  .host = "172.25.20.2";
  .port = "80";
}
sub vcl_recv {
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";
}
}

if (req.http.host ~ “^(www.)?westos.org”) {
此处用于当前面不管是什么域名当后面为westos.org 时,都会缓存到同
一个www.westos.org的目录
} else {error 404 “westos cache”;
此处不能显示为IP地址访问,因为其匹配的是域名,而不是IP地址

[物理机]
修改解析文件
vim /etc/hosts
172.25.20.1 www.westos.com bbs.westos.com www.westos.org bbs.westos.org

测试:
添加本地解析
curl www.westos.org
curl westos.org
curl bbs.westos.org

负载均衡

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

backend web2 {
  .host = "172.25.20.2";
  .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";
}
}

[server2]
<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName bbs.westos.org
</VirtualHost>

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

curl www.westos.org
curl bbs.westos.org

Cdn推送平台

安装php
yum install httpd -y
/etc/init.d/httpd restart

安装unzip插件
yum install -y unzip

将 bansys.zip解压到apache默认发布目录中unzip bansys.zip -d /var/www/html/ 把解压后目录中的所有文件移动到html下

解压 unzip bansys.zip
mv /mnt/bansys /var/www/html/
mv bansys/* .



    bansys 有两种工作模式,分别是:telnet 和 http 模式。

    telnet 模式需要关闭 varnish服务管理端口的验证,注释掉/etc/sysconfig/varnish 文件中的 “ -S ${VARNISH_SECRET_FILE}”这行,重启 varnish 服务即可。如果是 http 模式需要对 varnish
    做以下设置:

    PHP主配置文件

    vim config.php



vim /etc/varnish/default.vcl
acl westos {
#设置访问控制
"127.0.0.1";
"172.25.20.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";
}
}
# service varnish reload


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值