美文网首页
CDN基础实验--基于nginx+squid实现缓存功能

CDN基础实验--基于nginx+squid实现缓存功能

作者: 你的代码写得很烂 | 来源:发表于2017-05-30 20:34 被阅读1056次

CDN基础实验--基于nginx+squid实现缓存功能

实验要求

1、搭建2个web服务,使用nginx实现。

1个做源站(然后域名为:www.cdntest.com),配置实现功能:提供可以访问的web服务,另1个做反向代理,接收用户的请求,配置实现功能是:代理到后端的squid。

2、搭建一个squid服务,配置实现如下功能:

1)txt缓存1个月,jpg文件不缓存

2)配置回源功能,源站为后端的web服务器(nginx)

3.软件包及版本

nginx版本包:tengine-10.10.1-68.el6.x86_64.rpm或nginx-1.10.2-1.el6.x86_64

squid版本包:squid-3.8.3-2.p.x86_64.rpm

详细架构如下:

实验说明

1、squid软件一般常用于代理中,也是最常见的缓存及代理软件,它可以在Windows和Linux等系统运行

2、nginx在本实验中用做http服务器和反向代理服务器,可以运行在Windows和Linux等系统运行

3、小提示:nginx、squid可以使用同一主机的不同端口实现本实验。

4、实现域名访问:①虚拟机环境下修改Windows全局hosts文件;②在Linux中搭建bind域名服务器。

本实验以Windows的nginx作为源站,Linux的Squid作为缓存服务器、Linux的Nginx作为反向代理服务器,测试客户为以上3台的任意一台。

准备环境:系统和软件准备

系统:Windows10;Linux CentOS6.5 final;

软件:nginx-1.10.2-1.el6.x86_64;squid-3.1.23-24.el6.x86_64

系统结构

源站IP:10.9.8.1

缓存代理squid IP:10.9.8.129

反向代理nginx IP:10.9.8.128

测试用户为以上3台主机的任意一台

关键配置代码

Nginx反向代理代码:proxy_passhttp://10.9.8.129;

Squid设置源站:cache_peer10.9.8.1 parent 80 0 originserver

Squid缓存设置:refresh_pattern-i \.txt$ 43200 100% 43200

详细安装和配置

(1)源站配置(Windows)

下载nginx的Win包安装到windows系统下,配置conf/nginx.conf如下:

server {

listen80;

server_namelocalhost www.cdntest.com;

root"E:\Nginx";

indexindex.html index.htm index.php;

#省略部分代码

}

把txt/jpg文件放在E:\Nginx目录下

(2)缓存服务器Squid的安装及配置

安装:yum install squid -y

配置/etc/squid/squid.conf如下:

http_access allow all

http_port 80 #端口一般使用常用端口

cache_dir ufs

/var/spool/squid 100 16 256 #缓存目录

http_port10.9.8.129:80 accel vhost

cache_peer

10.9.8.1 parent 80 0 originserver #设置源站及端口

cache_mem 64 MB #缓存空间大小

acl allow_file

url_regex -i \.(txt) #允许缓存的文件

cache allowallow_file

refresh_pattern -i\.txt$ 43200100%43200 #设置缓存时间 单位为秒

(3)反向代理nginx的安装及配置

安装:yum install nginx -y

配置:/etc/nginx/conf.d/default.conf

server {

    listen80;

   server_namewww.cdntest.com;

   location / {

   proxy_passhttp://10.9.8.129; #反向代理地址

  }

}

配置完成后重启nginx

(4)验证实验

①通过Windows的浏览器访问

②使用10.9.8.128/10.9.8.129 curl访问

HTML页面curl http://www.cdntest.com/default.html

JPG图片 需要执行多次,查看是否被squid缓存

curlhttp://www.cdntest.com/test.jpg -I

TXT文件 需要执行两次,第一次为访问源站,第二次为访问缓存

curlhttp://www.cdntest.com/test.txt -I

③其他测试方法

为确保缓存txt文件成功,而jpg图片不被缓存,将源站服务关掉,再次访问txt和jpg,得到以下结果:访问jpg文件服务器返回503;访问txt文件返回200

到此,已经完成了基于nginx+squid实现缓存功能的小型CDN实验

相关文章

  • CDN基础实验--基于nginx+squid实现缓存功能

    CDN基础实验--基于nginx+squid实现缓存功能 实验要求 1、搭建2个web服务,使用nginx实现。 ...

  • CentOS7搭建小型CDN

    一丶试验要求 CDN基础实验2----基于nginx+squid实现缓存功能 1、搭建两个web服务,使用ngin...

  • 3.16 Web Cache欺骗攻击

    3.16.1. 简介   网站通常都会通过如CDN、负载均衡器、或者反向代理来实现Web缓存功能。通过缓存频繁访问...

  • 实验进展

    说明:☆:未实现▲:部分测试,如实验了kill★:基础功能★★:基础功能,输出到kafka★★★:基础功能,输出到...

  • java专题之大型分布式系统中的缓存架构

    缓存概述 缓存的分类 CDN缓存 CDN缓存是什么 CDN(Content Delivery Network内容分...

  • 关于封装播放器相关

    一:基础功能的实现: 1.基于AVFoundation/AVFoundation.h来实现功能. 1.1创建一...

  • CDN | 缓存资源的三种刷新方式

    功能介绍 缓存刷新是把CDN所有节点上对应的缓存资源标记为失效,当用户再次请求时,CDN会直接回源站获取对应的资源...

  • CDN技术详解

    1、CDN架构 2、CDN系统功能架构 4、GLSB一般是基于DNS解析方式,SLB基于4层或7层5、三级CDN部...

  • Varnish 接口缓存

    varnish基础概念 可以基于内存缓存,也可以在磁盘上缓存,但是就算存放在磁盘上,也不能实现持久缓存 只要进成本...

  • CDN

    CDN的全称是Content Delivery Network,即内容分发网络 CDN主要功能是在不同的地点缓存内...

网友评论

      本文标题:CDN基础实验--基于nginx+squid实现缓存功能

      本文链接:https://www.haomeiwen.com/subject/rjqqfxtx.html