博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx反向代理的缓存
阅读量:4201 次
发布时间:2019-05-26

本文共 2842 字,大约阅读时间需要 9 分钟。

一、说明

Nginx实现缓存功能  缓存数据分为两部分(索引,数据):    1、存储数据的索引,存放在内存中;    2、存储缓存数据,存放在磁盘空间中;  Nginx实现缓存是通过代理缓存pxory_cache  模块    ngx_http_proxy_module模块  常用的选项有    proxy_cache_path      说明        proxy_cache_path定义一个完整的缓存空间        指定缓存数据的磁盘路径、索引存放的内存空间以及一些其他参数,如缓存删除策略。        注意,该选项只能定义在http块上下文中。      例        proxy_cache_path /data/cache levels=1:2 keys_zone=web:10m max_size=1G inactive=10;        缓存数据存储在/data/cache目录中;      选项        levels          配置在该目录下再分两层目录,一层1个随机字符作为名称,二层2个随机字符作为名称,levels最多三层,每层最多两个字符,这是为了加快访问文件的速度;最后使用代理url的哈希值作为关键字与文件名,一个缓存数据如下:/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c;        keys_zone          用来为这个缓存区起名,并设置大小。          指定名称为web,这个名称后面proxy_cache需要引用          而10m就是内存空间的大小;        max_size          指定最大缓存数据磁盘空间的大小;        inactive          在inactive指定的时间内,未被访问的缓存数据将从缓存中删除。    proxy_cache      proxy_cache用来引用上面proxy_cache_path定义的缓存空间,现时打开缓存功能      例:        proxy_cache web; #引用上面定义上的缓存空间,同一缓存空间可以在几个地方使用    proxy_cache_valid      proxy_cache_valid设置不同响应代码的缓存时间      例        proxy_cache_valid 200 302 10m;        proxy_cache_valid 404 1m;

这里写图片描述

二、配置文件

三个步骤:新建缓存、打开缓存、缓存设置

如果要缓存整个页面,需要在代码中进行设置

/usr/local/tenginx/conf]$ cat nginx.conf# For more information on configuration, see:#   * Official English Documentation: http://nginx.org/en/docs/#   * Official Russian Documentation: http://nginx.org/ru/docs/user nginx;worker_processes auto;error_log /var/log/nginx/error.log;pid /run/nginx.pid;# Load dynamic modules. See /usr/share/nginx/README.dynamic.include ../modules/*.conf;events {    worker_connections 1024;}http {    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';    access_log  /var/log/nginx/access.log  main;    sendfile            on;    tcp_nopush          on;    tcp_nodelay         on;    keepalive_timeout   65;    types_hash_max_size 2048;    include             mime.types;    default_type        application/octet-stream;        #新建缓存        proxy_cache_path /data/cache levels=1:2 keys_zone=nginx:20M max_size=2G  inactive=5;        #为缓存数据添加头部信息        add_header muzigan-Cache "$upstream_cache_status form $server_addr";        upstream static_server {                server 192.168.17.175:80 weight=5;                server 192.168.17.176:80 weight=3;                check interval=3000 rise=2 fall=5 timeout=2000 type=http;                check_http_expect_alive http_2xx http_3xx;        }    server {        listen       80 default_server;        server_name  _;        location ~ ^/images {                index index.php index.html;                proxy_pass http://static_server;                #开启缓存                proxy_cache nginx;                #缓存设置                proxy_cache_valid 200 301 302 2m;        }    }}
你可能感兴趣的文章
在idea中创建Maven项目常见错误
查看>>
在Linux虚拟机上安装MySQL遇到的错误
查看>>
Spring常见错误
查看>>
SSM第三阶段整理
查看>>
什么时候用resultMap,什么时候用resultType?
查看>>
广二师校外访问知网
查看>>
Arduino配置ESP32开发环境(免运行get.exe)
查看>>
会声会影2018、2019版启动提示未注册的解决方法
查看>>
一键下载淘宝买家秀图片(win10)
查看>>
NetBeans IDE 中国教育考试版 (2007)运行界面空白解决方法(计算机二级java)
查看>>
全国计算机等级考试 二级java官方教材 纠错勘误 (非官方)
查看>>
PhotoshopCC 使用透视剪裁工具时提示:无法使用透视剪裁工具因为图像包含不受支持的图层类型?
查看>>
LeetCode-栈|双指针-42. 接雨水
查看>>
stdin,stdout,stderr详解
查看>>
Linux文件和设备编程
查看>>
文件描述符
查看>>
终端驱动程序:几个简单例子
查看>>
登录linux密码验证很慢的解决办法
查看>>
fcntl函数总结
查看>>
HTML条件注释
查看>>