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

详细架构如下:

实验说明

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实验

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 《老男孩Linux运维》笔记 隐藏Nginx软件版本号 一般来说,软件的漏洞都和版本有关。因此要尽量隐藏对访问用户...
    Zhang21阅读 9,129评论 0 28
  • I/O模型Nginx介绍Nginx的安装和目录结构Nginx的配置Nginx的编译安装 一、I/O模型 (一)I/...
    哈喽别样阅读 4,400评论 0 4
  • 【准备】1:3台虚拟机(奇数台)2:jdk安装3:免密码登陆 【1】上传tar包到其中一台虚拟机并解压 【2】修改...
    先生_吕阅读 4,571评论 0 1
  • 决定重新开始写字 因为有些东西好难忘记 却不得不忘记 写下就是封存 然后想要的时候再打开 我也始终相信写作是最好的...
    47Maggie阅读 1,324评论 0 0
  • 今天,动儿的炉石传说网络挑战赛就要开赛了。为了帮助动儿备赛,昨晚给动儿买好了牛奶和雪糕,还煮了一个大猪肘。牛奶是动...
    小可以之动阅读 4,312评论 13 50

友情链接更多精彩内容