Nginx核心要领四:Nginx反向代理,使用缓存提升性能

x33g5p2x  于2021-12-20 转载在 其他  
字(1.6k)|赞(0)|评价(0)|浏览(321)

通过上篇博客,可以让你搭建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的内容

相关文章