Nginx的缓存代理服务器实战
今天分享的是nginx的缓存服务器,
其实缓存是无处不在的,我们自己的浏览器也会有自带的缓存功能;
这个实验的缓存是基于服务器来说的;需要做好区分;实验其实不难,但是很容易搞混;来看看
1、缓存服务器说明
简单理解:
- 代理服务器还可以使用缓存功能,比如说疫情的时候,很多人查询结果,如果变化不大,但是直接就使用缓存来给与结果,减少应用服务器(后端服务器)上的资源开销,如果多个客户查询同一样的资源,代理服务器命中后,对后端服务器只会进行一次的资源调度;
- 浏览器也是存在缓存配置,把请求目标的内容会放在浏览器本地;
2、缓存服务器的代理服务器实验
实验规划:
- 后端服务器:192.168.75.73
- 代理服务器:192.168.75.72
后端服务器修改配置文件
#修改配置文件
[root@Linux2 ~]# vim /usr/local/nginx/conf/nginx.conf
...........#http下面;加上一下几行;
proxy_cache_path /usr/local//nginx/cache max_size=10g levels=1:2 keys_zone=nginx_cache:10m inactive=10m use_temp_path=off;upstream nginx {server 192.168.75.73;}
............#这里添加proxy的内容location / {root html;index index.html index.htm;proxy_pass http://192.168.75.73;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_cache nginx_cache;proxy_cache_key $host$uri$is_args$args;proxy_cache_valid 200 304 302 1d;}
#参数解释:
/data/nginx/cache #缓存资源存放路径
levels #设置缓存资源的递归级别,默认为 levels=1:2,表示Nginx为将要缓存的资源生成的key从后依次设置两级保 存。
key_zone #在共享内存中设置一块存储区域来存放缓存的key和 metadata,这样nginx可以快速判断一个request是否命中或者未命中缓存, 1m可以存储8000个key,10m可以存储80000个key
max_size #最大cache空间,如果不指定,会使用掉所有disk space,当达到配额后,会删除不活跃的cache文件
inactive #未被访问文件在缓存中保留时间,本配置中如果60分钟 未被访问则不论状态是否为expired,缓存控制程序会删掉文件。inactive默 认是10分钟。
需要注意的是,inactive和expired配置项的含义是不同的, expired只是缓存过期,但不会被删除,inactive是删除指定时间内未被访问 的缓存文件
use_temp_path #如果为off,则nginx会将缓存文件直接写入指定的cache文件中,而不是使用temp_path存储,official建议为off,避免文件 在不同文件系统中不必要的拷贝
proxy_cache #启用proxy cache,并指定key_zone。如果 proxy_cache off表示关闭掉缓存。
#重启服务
[root@Linux2 ~]# nginx -s reload#验证
[root@Linux1 ~]# curl www.liangjiawei.net
THis IS 75.73后端服务器资源
分享环节:
hi,亲爱的朋友们:
- 感谢你们耐心完这个笔记,如果笔记中出现的一些软件包、资源找不到的可以直接留言&私聊,我看见了就回复;
- 资源免费共享;有需要滴滴,(仅仅是我有的)
我的坚持初衷:💕立志要成为一名架构师
- 不断地去坚持学,其中的各种各样的难度,不言而喻~!
- 坚持不是一件容易的事情,但它却是成功的关键。做起来吧~!
如果你也想要坚持:那么组团吧,咋们一块互相监督;一天一点分享也是进步;最怕就是孤军奋战!加油吧,追梦人~!