nginx配置反向代理缓存
说明
最近运维一个网站里面含有不经常变化的小图片,而每次请求都需要调用file接口获取不太合适。所以就想利用nginx的反向代理缓存来减轻服务接口的请求压力。
工作原理
Nginx反向代理缓存,当客户端向Nginx服务器发送请求时,nginx根据请求的URI可以加一层缓存,可缓存动态请求,当缓存存在时Nginx直接将缓存返回给客户端,而不请求服务接口,这样可以使服务器压力降低。
如何配置?
- 在http节点下添加
# 反向代理缓存配置
client_body_buffer_size 512k;
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_temp_path D:/tmp;
proxy_cache_path D:/tmp/cache levels=1:2 keys_zone=cache_one:200m inactive=7d max_size=50g;
proxy_cache_path:表示生成的缓存文件存放的路径,该路径是预先就要创建好的
levels=1:2 : 设置在相对于path指定目录的第几级hash目录中缓存数据,levels=1,表示一级hash目录,levels=1:2,表示两级hash目录。
- 在server节点下添加
location ~ / {
proxy_pass http://127.0.0.1:9001;
if ($request_uri ~ ^/(article|category)) {
set $cookie_nocache 1;
}
if ($request_uri = /) {
set $cookie_nocache 1;
}
proxy_cache cache_one;
proxy_cache_valid 200 304 7d; #正常状态缓存时间7天
proxy_cache_key $host$uri$is_args$args;
proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
proxy_no_cache $http_pargma $http_authorization;
add_header Nginx-Cache "$upstream_cache_status";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
proxy_pass 配置的反向代理。
proxy_cache cache_one; 指定用哪个缓存,这地方就是上面配置的。
两个if条件表达式过滤了部分请求不缓存。
如何确定已生效?
重启nginx,刷新请求发现缓存路径下已生成了文件:
未命中缓存的请求
已命中缓存的请求
nginx配置反向代理缓存的更多相关文章
- Windos环境用Nginx配置反向代理和负载均衡
Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...
- Linux - Nginx配置反向代理。
Nginx配置反向代理. 准备两台服务器 http://192.168.70.66 http://192.168.70.62 设置正则匹配(192.168.70.66) vim /usr/local/ ...
- CentOS 7 安装 Nginx 配置反向代理
Linux使用Nginx Yum存储库上安装Nginx,适用于Red Hat Enterprise Linux和CentOS系统. 1.添加设置Nginx Yum存储库 在CentOS中首次安装Ngi ...
- [笔记]nginx配置反向代理和负载均衡
1.nginx配置文件:源码安装情况下,nginx.conf在解压后的安装包内.yum安装,一般情况下,一部分在/etc/nginx/nginx.conf中,一部分在/etc/nginx/conf.d ...
- nginx配置反向代理详细教程(windows版)
内容属于原创,如果需要转载,还请注明地址:http://www.cnblogs.com/j-star/p/8785334.html Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(I ...
- windows版 nginx配置反向代理实例教程 跳转tomcat和php网站
抄自 https://www.cnblogs.com/j-star/p/8785334.html 个人理解 nginx端口设置为80,简称n tomcat端口设置为其他,例如8080,简称t php网 ...
- nginx笔记 安装nginx 配置 反向代理 多虚拟主机
1,检测linux上是否 通过yum安装了nginxrpm -qi nginx 2.安装nginx之前的依赖包yum install gcc patch libffi-devel python- ...
- nginx 配置反向代理,负载均衡实战解析
前言:NGINX的反向代理和负载均衡是网站架构中经常用到的一种高并发,高可用的方案,下面我们直接实战操作,当然理论也是要的. 一.反向代理 过程:反向代理:客户端 一>代理 <一> ...
- nginx 配置反向代理和静态资源
https://unit.nginx.org/integration/ 与NGINX集成 在NGINX后面安装单元 将NGINX配置为静态Web服务器,并在Unit前面配置反向代理. NGINX直接从 ...
- nginx 配置反向代理
之前的前端是8123端口,使用此端口让nginx的反向代理. vim /etc/nginx/conf.d/80-fr.conf upstream cats{ server 127.0.0.1:8123 ...
随机推荐
- Go-单链表-栈和队列
package main import ( "errors" "fmt" "log" ) // 单链表 // 特征: // 1. 每个节点都 ...
- [转帖]Kafka-LEO和HW概念及更新流程
https://www.cnblogs.com/youngchaolin/p/12641463.html 目录 LEO&HW基本概念 LEO&HW更新流程 LEO HW 更新流程示例分 ...
- [转帖]java -D参数设置系统属性无效问题及解决
https://www.jb51.net/article/271236.htm 这篇文章主要介绍了java -D参数设置系统属性无效问题及解决方案,具有很好的参考价值,希望对大家有所帮助.如有错误 ...
- [转帖]Linux—vi/vim全局替换
https://www.jianshu.com/p/4daa5dbc7dd5 vim全局替换 在linux系统中编辑文件或者配置时,常常会用到全局替换功能. 语法格式 :%s/oldWords/n ...
- 【转帖】ethool工具之TSO、UFO、GSO、LRO、GRO和RSS介绍
ethtool -k < 网络接口>, ethtool --show-offload < 网络接口>, 或者可以看到很多网络接口的offload特性,例如: $ sudo et ...
- 【转帖】用pycharm开发django项目示例
https://www.cnblogs.com/kylinlin/p/5184592.html pycharm开发django工程(一) 在pycharm(企业版)中新建Django工程,注意使用虚拟 ...
- [转帖]python库Paramiko
https://zhuanlan.zhihu.com/p/456447145 测试过程中经常会遇到需要将本地的文件上传到远程服务器上,或者需要将服务器上的文件拉到本地进行操作,以前安静经常会用到xft ...
- [转帖]深入理解Redis的scan命令
熟悉Redis的人都知道,它是单线程的.因此在使用一些时间复杂度为O(N)的命令时要非常谨慎.可能一不小心就会阻塞进程,导致Redis出现卡顿. 有时,我们需要针对符合条件的一部分命令进行操作,比如删 ...
- [转帖]“高密度核心”的角逐 —— AMD Bergamo SoC & Zen 4c 前瞻
https://zhuanlan.zhihu.com/p/585469720 最近这段时间一直在关注Bergamo和Zen 4c,但遗憾的是Genoa的发布会并没有提到太多的Bergamo细节.不过这 ...
- JDK内嵌指令的简单学习
java 可以使用 java -jar的方式启动服务 日常工作中用到的比较少 javac 可以将.java 文件编译成 .class中间代码 这个工具开发编写代码中是经常需要使用的, jenkins ...