一丶试验要求
CDN基础实验2----基于nginx+squid实现缓存功能
1、搭建两个web服务,使用nginx实现。
一个做源站(然后域名为:www.cdntest.com),配置实现功能:提供可以访问的web服务;
另一个做反向代理,接收用户的请求,配置实现功能是:代理到后端的squid。
2、搭建一个squid服务,配置实现如下功能:
1)txt缓存1个月,jpg文件不缓存
2)配置回源功能,源站为后端的web服务器(nginx)
详细架构如下
图 1
二丶实验环境
图 2
三丶试验准备
centos7 软件源设置
备份原来的.repo文件
[root@localhost ~]# mkdir /etc/yum.repos.d/bacakup
[root@localhost~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/bacakup
下载阿里的yum源
[root@localhost~]# wget -O /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost~]# wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
清除和新建元数据缓存
[root@localhost~]# yum clean all
[root@localhost~]# yum makecache
四丶服务配置
Nginx-Proxy 虚拟机配置
安装nginx
[root@proxy ~]# yum install -y nginx
配置/etc/nginx/nginx.conf 其它默认 (centos6.x的系统是编辑/etc/nginx/conf.d/defualt.conf)
[root@proxy ~]# vim /etc/nginx/nginx.conf
server {
listen 80 default_server; #这端口80,默认的就行,可以按照实际需求更改
server_name www.cdntest.com; #这个可以自定义
location / {
proxy_pass http://192.168.56.5; #填写squid服务器的IP
}
}
激活和启动nginx服务
[root@proxy ~]# systemctl enable nginx.service
[root@proxy ~]# systemctl start nginx.service
Squid缓存服务器配置
安装squid
[root@squid ~]# yum install squid
配置/etc/squid/squid.conf,其它保存为默认
[root@squid ~]# vim /etc/squid/squid.conf
acl url_image url_regex -i ^http://.*\.jpg$
no_cache deny url_image
http_access allow deny#在实验中可以允许所有(deny改成allow),实际生产环境可以视情况来配置
http_port 192.168.56.5:80 accel vhost #配置squid本地网卡和80端口,如果是双网卡,可以选择用来访问源服务器的那一张
cache_peer 192.168.56.4 parent 80 0 originserver #这个是反向代理的源服务器
cache_dir ufs /var/spool/squid 100 16 256 #缓存目录
cache_log /var/log/squid/cache.log #缓存日志
refresh_pattern -i \.txt$ 43200 100% 43200 #缓存规则,txt文件保存一个月
激活和启动squid服务
[root@squid ~]# systemctl enable squid.service
[root@squid ~]# systemctl start squid.service
Nginx-Web服务器配置
安装nginx同上。
配置/etc/nginx/nginx.conf
[root@server ~]# vim /etc/nginx/nginx.conf
server {
server_name www.cdntest.com; #配置域名,其它的保持默认即可
}
激活和启动服务同上。
注:为了达到实验要求,自己的nginx-web服务器上必须放有.txt文件和.jpg文件。
五丶客户机访问及验证缓存
编辑windows上的C:\Windows\System32\drivers\etc\hosts文件
添加如下两行
192.168.56.3 www.cdntest.com
192.168.56.3 cdntest.com #这能使windows上的浏览器通过这个域名能直接访问
Nginx-Proxy这台反向代理服务器
在浏览器中输入www.cdntest.com或cdntest.com,访问结果如下
图 3
验证缓存是否成功
在nginx-proxy服务器下执行
[root@proxy ~]# curl -I http://192.168.56.5/txt/5.txt #查看txt缓存(图4)
[root@proxy ~]# curl -I http://192.168.56.5/images/work-1.jpg #查看图片缓存(图5)
返回结果
图 4
图 5