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

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

写的很好的一篇博主:https://www.cnblogs.com/lovelinux199075/p/9064431.html

亲测有效

1、缓存介绍

1.代理服务器端缓存作用       减少后端压力,提高网站并发延时2.缓存常见类型      服务器端缓存:代理缓存,获取服务器端内容进行缓存,浏览器端缓存3.nginx代理缓存      proxy_cache

2、代理缓存配置

1.缓存配置

#vim /usr/local/nginx/conf/nginx.conf upstream node {    server 192.9.191.31:8081;    server 192.9.191.31:8082;}proxy_cache_path /cache levels=1:2 keys_zone=cache:10m max_size=10g inactive=60m use_temp_path=off;server {    listen 80;    server_name www.test.com;    index index.html;    location / {    proxy_pass http://node;    proxy_cache cache;    proxy_cache_valid   200 304 12h;    proxy_cache_valid   any 10m;    add_header  Nginx-Cache "$upstream_cache_status";    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;        }    }

 2.参数详解

proxy_cache_path /soft/cache levels=1:2 keys_zone=cache:10m max_size=10g inactive=60m use_temp_path=off;    #proxy_cache    //存放缓存临时文件    #levels         //按照两层目录分级    #keys_zone      //开辟空间名,10m:开辟空间大小,1m可存放8000key    #max_size       //控制最大大小,超过后Nginx会启用淘汰规则    #inactive       //60分钟没有被访问缓存会被清理    #use_temp_path  //临时文件,会影响性能,建议关闭
proxy_cache cache;proxy_cache_valid   200 304 12h;proxy_cache_valid   any 10m;add_header  Nginx-Cache "$upstream_cache_status";proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;    #proxy_cache            //开启缓存    #proxy_cache_valid      //状态码200|304的过期为12h,其余状态码10分钟过期    #proxy_cache_key        //缓存key    #add_header             //增加头信息,观察客户端respoce是否命中    #proxy_next_upstream    //出现502-504或错误,会跳过此台服务器访问下一台服务器

3.创建缓存目录

mkdir /cache nginx -t nginx -s reload

 

3、清除缓存

1.rm删除已缓存的数据rm -rf /cache/*2.通过ngx_cache_purge扩展模块清理,需要编译安装nginx

 

4、部分页面不缓存

#vim /usr/local/nginx/conf/nginx.conf upstream node {        server 192.9.191.31:8081;        server 192.9.191.31:8082;}proxy_cache_path /cache levels=1:2 keys_zone=cache:10m max_size=10g inactive=60m use_temp_path=off;server {        listen 80;        server_name www.test.com;        index index.html;        if ($request_uri ~ ^/(static|login|register|password)) {                set $cookie_nocache 1;                }        location / {                proxy_pass http://node;                proxy_cache     cache;                proxy_cache_valid       200 304 12h;                proxy_cache_valid       any     10m;                add_header      Nginx-Cache     "$upstream_cache_status";                proxy_next_upstream     error timeout invalid_header http_500 http_502 http_503 http_504;                proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;                proxy_no_cache $http_pargma $http_authorization;                }        }

 

 3.1、重启加验证

nginx -t nginx -s reload

 

3.2、两次没有命中

 

 4、统计日志命中率

 1.日志格式:变量$upstream_cache_status"

#vim /usr/local/nginx/conf/nginx.conf       log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                  '$status $body_bytes_sent "$http_referer" '                  '"$http_user_agent" "$http_x_forwarded_for" "$upstream_cache_status"';access_log logs/access.log main;error_log logs/error.log;

 2、查看日志

 

3、统计日志命中率加入到计划任务中这里省略

awk '{if($NF = "HIT"){count++;}} END{printf "%.2f%",count/NR*100}' /usr/local/nginx/logs/access.log

 

转载于:https://www.cnblogs.com/huangyanqi/p/11051365.html

你可能感兴趣的文章
给力!新书面市:软考45分采分点梳理与难点突破——系统集成项目管理工程师...
查看>>
分享ISTQB培训体验
查看>>
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(3)...
查看>>
自动化部署工具PUPPET介绍
查看>>
SystemCenter2012SP1实践(7)SCVMM管理VMware
查看>>
监控AlwaysOn可用性组的运行状态
查看>>
虚拟化基础架构Windows 2008篇之10-使用WDS安装Windows 7
查看>>
“高、纯、久”当道,量子点技术能否重构电视分水岭?
查看>>
Frost&Sullivan:2012年中国数据库安全审计与防护产品市场分析
查看>>
KingbaseES的standby搭建
查看>>
Exchange 2010 SP3正式发布提供下载
查看>>
开源跳板机(堡垒机)Jumpserver v0.2.0 部署篇
查看>>
zabbix企业应用之定时获取监控数据做报表
查看>>
微商引流推广方法殆尽,无路可走了吗?
查看>>
height、clientHeight、scrollHeight、offsetHeight区别
查看>>
TKstudio和Adobe Acrobat pro阅读部分快捷键
查看>>
python之sqlite3使用详解(转)
查看>>
Eclipse设立编辑器为绿豆沙颜色
查看>>
遍历Map的四种方法
查看>>
Python天天美味(2) - 字符遍历的艺术(转)
查看>>