文档章节

nginx 的 proxy_cache 缓存配置

dubox
 dubox
发布于 03/22 23:03
字数 569
阅读 111
收藏 0

 有个项目用到了百度语音接口,由于功能比较小所以不想在服务端写,打算直接用 js 调百度接口,然后用 nginx 代理解决跨域问题,那么token怎么办 token肯定是要缓存起来的 又不能缓存在浏览器里,于是就试了试 nginx 的 proxy_cache:



# proxy_cache_path 缓存的基本配置,需要放在 server 的外面,下面是配置项
# 缓存文件路径:/data/nginx/cache(自定义)
# keys_zone 设置缓存名字和共享内存大小 one-cache:50m
# levels 设置缓存文件目录层次;levels=1:2 表示两级目录
# inactive 删除指定时间内未被访问的缓存文件
# max_size 缓存硬盘空间最多为 200m,如果缓存空间满,默认覆盖掉缓存时间最长的资源。

# 下面两项是 nginx 启动时加载缓存的参数
# loader_threshold 加载器每次迭代过程最多执行300毫秒
# loader_files 加载器每次迭代过程中最多加载200个文件



proxy_cache_path /data/nginx/cache keys_zone=one-cache:50m levels=1:2 
                 inactive=7d loader_threshold=300 loader_files=200 max_size=200m;

#百度语音识别接口跨域代理
server {
    listen 80;
    server_name  vop-baidu.proxy.abc.com;


    add_header Access-Control-Allow-Origin *; 
    add_header Access-Control-Allow-Headers X-Requested-With,content-type;
    add_header Access-Control-Allow-Methods GET,POST; #,OPTIONS;
    add_header Access-Control-Max-Age 99999999;

    location / {
        proxy_pass  http://vop.baidu.com;

   }

   #百度语音 token
   location /token {
                
                proxy_cache one-cache; # 使用名称为one-cache的缓存(必须)
                proxy_cache_methods GET HEAD POST; #配置需要缓存的方法 默认GET|HEAD
                proxy_cache_valid 200 302 10d; # 对200和302状态的请求缓存10天,any 表示所有状态
                proxy_cache_key $uri; # 定义缓存key 默认是请求URL

                #****很重要*** 此项适用于配置要忽略的proxy_pass目标服务器的响应 header 项,
                #当目标服务器设置了 Cache-Control或Set-Cookie header等项时 则响应
                #不会被缓存或影响缓存策略,所以这里选择忽略
                proxy_ignore_headers Cache-Control Set-Cookie; 

                proxy_pass  https://openapi.baidu.com/oauth/2.0/token?xxxxxxx;
        }
}


 

配置好后,记得创建缓存文件目录(/data/nginx/cache , cache 这一层 nginx 可以自动创建),然后重启 nginx ,请求相关链接检查配置是否生效,生效则缓存目录会出现缓存文件:

 

还有一些高级配置项, proxy_no_cacheproxy_cache_bypass,proxy_cache_purge,proxy_pass_headers,proxy_hide_headers,proxy_cache_background_update。。。用到的时候在详细研究吧。

 

参考:

https://blog.csdn.net/dengjiexian123/article/details/53386586

https://www.jianshu.com/p/625c2b15dad5

https://www.nginx.com/blog/nginx-caching-guide/

© 著作权归作者所有

共有 人打赏支持
dubox
粉丝 3
博文 90
码字总数 25222
作品 0
西安
程序员
nginx缓存的原理及配置和nginx的限制访问次数

文章转载地址:https://blog.csdn.net/wangjianno2/article/details/75201020/ 一、nginx缓存的原理及配置 1、nginx的缓存简介 nginx的http_proxy模块,可以实现类似于squid的缓存功能。ngi...

妙曼
07/05
0
0
Web内容缓存

1 介绍 当缓存被启用时,Nginx保存响应到磁盘缓存并每次请求相同的内容时不用代理请求使用它们响应客户端。 2 启用响应缓存 为了启用缓存,在http上下文设置proxycachepath指令。第一个强制参...

Leech
2016/08/05
28
0
nginx图片服务器配置proxy_cache及purge错误解决方法

这里主要分享下centos环境nginx搭建图片服务器的过程以及遇到错误解决方法 一.nginx安装 这里需要用到ngxcachepurge模块建议采用源码编译方式安装 1.安装pcre 下载pcre安装包 然后 ./config...

zhangdiandong
2015/09/23
0
0
nginx web缓存配置

1.场景:使用proxy_cache缓存web静态内容文件和通过rewrite伪静态化后的html整页面缓存。 动态内容通过Ajax动态获取,也保持内容一致。 2.nginx 配置 a.添加缓存文件保存路径 b.添加缓存配置...

WolfX
2016/03/10
66
0
Nginx的缓存问题

我在Nginx配置中已经配置了缓存,并且指定了缓存的路径/nginx/proxycachedir,/nginx/proxycachedir目录的权限也已经能让nobody写入的,但是我的nginx运行两天了,在/nginx/proxycachedir目录...

xwsnet
2011/05/20
3.9K
14

没有更多内容

加载失败,请刷新页面

加载更多

python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
1
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
51
0
Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
昨天
1
0
我为什么用GO语言来做区块链?

Go语言现在常常被用来做去中心化系统(decentralised system)。其他类型的公司也都把Go用在产品的核心模块中,并且它在网站开发中也占据了一席之地。 我们在决定做Karachain的时候,考量(b...

HiBlock
昨天
1
0
大数据学习脑图以及入门教程!

近些年,大数据的火热可谓是技术人都知道啊,很多人呢,也想学习大数据相关,所以,这里分享几个大数据脑图,希望可以让你清楚明白从哪里入门大数据,知道该学习以及掌握哪些知识点; 大数据...

董黎明
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部