网站首页 > 技术教程 正文
众所周知,Nginx是一个高性能的web服务器,尤其在高并发和处理静态页面的时候有先天的优势;很大一部分得益于缓存的开启,那么如何开启nginx的缓存呢。
简单来说可以分两步:
定义缓存存储目录并指定共享内存空间
在location里指定共享内存空间
具体实现如下:
user www;
worker_processes auto;
events {
worker_connections 4096;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
keepalive_timeout 65;
# 以下两行是缓存相关配置
proxy_cache_path /data/nginx/cache2 levels=1:2 keys_zone=mycache:1024m max_size=2048m inactive=1d ;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /apis/test/img {
proxy_pass http://192.168.1.2/;
# 以下三行是缓存相关配置
proxy_cache mycache;
proxy_cache_valid 200 1d;
proxy_cache_use_stale error timeout invalid_header updating http_500 http_503 http_404;
}
error_page 500 502 503 504 /50x.html;
}
上述配置里加粗部分是cache相关,具体解释如下:
proxy_cache_path:定义缓存目录,需要手动创建此目录;缓存数据存放至此。
/data/nginx/cache2:自定义的缓存目录,缓存中的文件名称是应用MD5的结果;另外,首先是将缓存响应写入临时文件,然后文件才被重命名;
levels=1:2:定义缓存的层次结构级别;这里表示缓存目录的第一级目录是1个字符,第二级目录是2个字符;结构类似:
存储结构示例
keys_zone=mycache:1024m:内核中建立的用于缓存数据原数据的共享内存空间;这里存放缓存数据的原数据;查找缓存的时候,先从这个内核空间中找到,缓存数据的原数据,然后再到对应目录中查找缓存;我这里定义的zone名称为‘mycache’,
max_size=2048m:设置缓存空间的最大值;
inactive=1d: 设置缓存的数据保留时间,这里自定义1天内没有被访问过就删除;
proxy_cache:在location里设置内存缓存源数据空间名字,对应我们前面的设定'mycache';
proxy_cache_valid: 可以为不同的响应状态码设置不同的缓存时间,比如这里200状态码,设置为1天;
proxy_cache_use_stale:指定后端服务器出现状况时,nginx可以使用的过期缓存
另外可以设置proxy_cache_key:用来指定缓存所使用的key的组合字符串,然后用md5进行加密。如不指定默认使用:$scheme$proxy_host$request_uri;
猜你喜欢
- 2024-10-13 互联网缓存的那些事(互联网储存知识的利与弊)
- 2024-10-13 万字长文聊缓存(上)- http缓存(http缓存)
- 2024-10-13 利用nginx设置浏览器协商缓存(nginx 设置缓存)
- 2024-09-28 nginx缓存以及gzip配置(nginx 配置缓存)
- 2024-09-28 Dockerfile制作镜像精简之道(docker怎么做镜像)
- 2024-09-28 Nginx反向代理如何缓存配置?(nginx反向代理及缓存机制)
- 2024-09-28 Nginx、Redis、Memcache和Ehcache等各项缓存技术
- 2024-09-28 Nginx 缓存提升网站性能的优化技巧
- 2024-09-28 面试官:如何实现多级缓存?(多级缓存的工作方式)
- 2024-09-28 NGINX 增加 缓存解决一些高并发的一些请求
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)