1.环境准备
#首先准备两台上游服务器
[root@YU ~]# yum install -y httpd
[root@YU ~]# vim /var/www/html/index.html
<h1>i am 24</h1> #随便写入一句用作区分的话
[root@localhost ~]# yum install -y httpd
[root@localhost ~]# vim /var/www/html/index.html
<h1>i am 12</h1> #随便写入一句用作区分的话#
#在反向代理服务器上进行测试(注意防火墙和SELinux)
[root@localhost ~]# curl 192.168.14.12
<h1>i am 24</h1>
[root@localhost ~]# curl 192.168.14.12
<h1>i am 12</h1>
2.对反向代理服务器进行配置文件的修改
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
upstream local { #记录两个上游服务器的IP地址
server 192.168.14.24;
server 192.168.14.12;
}
#定义了缓存的路径,缓存文件拆分为两个、预留10兆缓存空间(名为my_cache)、10g硬盘空间、存活时间60m、不使用临时目录
proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
server {
listen 8080; #监听端口为8080
server_name www.yu.com; #服务器域名为www.yu.com
error_log logs/yu.com.errlog; #日志文件位置
access_log logs/yu.com.acclog;
location / {
proxy_pass http://local; #将流量转发给名为local的模块upstream
proxy_set_header Host $host; #在头部加入主机名
proxy_set_header X-Real-IP $remote_addr; #在头部写入真实客户端IP地址
proxy_set_header X-Forwarded-For #在头部写入流量经过的路径 $proxy_add_x_forwarded_for;
proxy_cache my_cache; #使用我们定义好的缓存空间my_cache
proxy_cache_key $host$uri$is_args$args; #缓存的键值对
proxy_cache_valid 200 304 302 1d; 状态码为200、304、302才被缓存,时间为一天
}
3.测试方法
#1.抓包
[root@YU ~]# yum -y install tcpdump
[root@YU ~]# tcpdump -i ens33 -w nginx.cap tcp port 80
#在谷歌浏览器输入www.yu.com:8080,刷新几次
#ctrl+c停止抓包,在windows中win+R,输入cmd,打开命令行模式
#命令行中输入,便可将linux中的文件传送到电脑上,并用wireshark打开进行分析,可以看出http协议头部存在刚才写入的参数
scp root@192.168.14.24:~/nginx.cap F:\nginx.cap
#2.观察谷歌浏览器的页面,在做了缓存之后,怎么刷新都是同样的页面,说明代理服务器已经做好了缓存,无需到达上游服务器。在上游服务器日志当中发现无新条目出现