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

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

详细架构如下:

CDN基础实验--基于nginx+squid实现缓存功能_第1张图片

实验说明

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

系统结构

CDN基础实验--基于nginx+squid实现缓存功能_第2张图片

源站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的浏览器访问

CDN基础实验--基于nginx+squid实现缓存功能_第3张图片

②使用10.9.8.128/10.9.8.129 curl访问

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

CDN基础实验--基于nginx+squid实现缓存功能_第4张图片

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

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

CDN基础实验--基于nginx+squid实现缓存功能_第5张图片

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

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

CDN基础实验--基于nginx+squid实现缓存功能_第6张图片

③其他测试方法

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

CDN基础实验--基于nginx+squid实现缓存功能_第7张图片
CDN基础实验--基于nginx+squid实现缓存功能_第8张图片

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

你可能感兴趣的:(CDN基础实验--基于nginx+squid实现缓存功能)