通过上篇博客,可以让你搭建Nginx搭建静态资源服务器,本篇将基于上篇的基础上,搭建一个反向代理服务,并使用缓存技术来提升性能
缓存分为nginx缓存与浏览器缓存:
1.nginx缓存:请求到达nginx,会先到缓存中找,如果命中缓存,则直接返回客户端,不再将请求发往上游服务,提升所有用户体验2.浏览器缓存:没有网络消耗,速度最快,.即使有网络消耗,但对失效缓存使用304(没有body)响应做到网络流量最小化,提升单个用户体验我将在一个 nginx.conf 文件中进行配置,因为在同一个配置文件中,怕有的朋友弄混淆,为此画了个简图
Nginx配置反向代理与使用缓存很简单,请看配置文件注释的地方:
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; #配置缓存的路径,目录层级,缓存name,大小,缓存失效时间60分钟 #设置缓存的路径,目录层级,缓存区名称为my_cache,内存缓存空间大小为10MB,硬盘缓存空间大小为10GB,60分钟没有被访问的内容自动清除, proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; #要代理的服务 upstream lkh{ server 127.0.0.1:8080; server 127.0.0.1:8081; } server { listen 80; access_log logs/zy80.access.log main; location / { proxy_pass http://lkh; #设置浏览器缓存的1小时后过期时间 expires 1h; #使用缓存 proxy_cache my_cache; #缓存的key,根据用户访问的uri和参数进行缓存 proxy_cache_key $host%uri$is_args$args; #缓存什么样的响应,仅对以下响应码缓存,且设置缓存时间 proxy_cache_valid 200 304 302 1d; } } #server1 server { listen 8080; server_name localhost; access_log logs/zy8080.access.log main; location / { alias /home/lkh/; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } #server2 server { listen 8081; server_name localhost; access_log logs/zy8081.access.log main; location / { alias /home/lkh/; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }启动nginx,然后访问80端口,也就是 192.168.68.136 查看第一次请求的头部信息 查看第二次访问的头部信息,多了 Expires ,过期时间是当前时间之后的1小时
还可以在服务器的 /tmp/nginxcache 目录看到缓存的文件 把文件下载下来,然后用文本编辑器打开看看里面是什么,可以看到里面有nginx的请求头信息和html的内容