首页 > 其他 > 详细

nginx缓存

时间:2019-12-04 18:51:27      阅读:101      评论:0      收藏:0      [点我收藏+]
开启缓存可以提高网站性能,减轻频繁访问数据,而给数据库带来的压力
合理的缓存,还会减轻程序运算时,对CPU带来的压力
http缓存设置——浏览器访问Nginx,浏览器会Cache
nginx代理层缓存——Nginx 访问后端,Nginx 自己Cache
1.http缓存设置
Nginx提供了 expiresetagif-modified-since 指令来实现浏览器缓存控制
expires让用户访问一次后,将数据缓存在用户的浏览器中
expires的配置
upstream nodejs {
    server 127.0.0.1:3002;
}

server {
    listen 3001;
    server_name 127.0.0.1;
    location / {
        proxy_pass      http://nodejs;
        gzip on;
        gzip_min_length 1k;
        gzip_buffers 4 16k;
        #gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
        gzip_vary off;
        gzip_disable "MSIE [1-6]\.";
        expires   3m;
    }

}

开启缓存后第一次请求

 技术分享图片

以后再请求

 技术分享图片

技术分享图片

 2.nginx代理层缓存

Nginx实现缓存是通过代理缓存pxory_cache
常用的设置选项有
(1)proxy_cache_path
  定义一个完整的缓存空间,指定缓存数据的磁盘路径、索引存放的内存空间以及一些其他参数,如缓存删除策略
  eg:
proxy_cache_path /data/cache levels=1:2 keys_zone=nodejs:10m max_size=1G inactive=10; 

  说明:

levels:配置在该目录下再分两层目录,一层1个随机字符作为名称,二层2个随机字符作为名称

  levels最多三层,每层最多两个字符(为了加快访问文件的速度)

keys_zone:用来为这个缓存区起名,并设置大小

  如上指定名为nodejs,供proxy_cache引用;10m就是内存空间的大小;

max_size:指定最大缓存数据磁盘空间的大小

inactive:在inactive指定的时间内,未被访问的缓存数据将从缓存中删除

  注:
    只能定义在http块上下文中
(2)proxy_cache
  用来引用上面proxy_cache_path定义的缓存空间, 现时打开缓存功能
(3)proxy_cache_valid
  设置不同响应代码的缓存时间
eg:
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    #新建缓存
    proxy_cache_path D:/phpStudy/nginx/data/cache levels=1:2 keys_zone=nodejs:20M max_size=2G  inactive=5;
    #为缓存数据添加头部信息
    add_header my-Cache "$upstream_cache_status form $server_addr";
    upstream nodejs {
        server 127.0.0.1:3002;
    }

    server {
        listen 3001;
        server_name 127.0.0.1;
        location / {
            proxy_pass      http://nodejs;
            gzip on;
            gzip_min_length 1k;
            gzip_buffers 4 16k;
            #gzip_http_version 1.0;
            gzip_comp_level 2;
            gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
            gzip_vary off;
            gzip_disable "MSIE [1-6]\.";
            #开启缓存
            proxy_cache nodejs;
            #缓存设置
            proxy_cache_valid 200 301 302 2m;
       proxy_cache_valid any 2m;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For     $proxy_add_x_forwarded_for;
            add_header X-Via $server_addr;
            add_header X-Upstream $upstream_addr;
            add_header Nginx-Cache $upstream_cache_status;
        }
    }
}    
 

 

 

 

 

 

nginx缓存

原文:https://www.cnblogs.com/baby123/p/11984636.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!