前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何开启Nginx缓存

如何开启Nginx缓存

作者头像
星哥玩云
发布2022-07-13 15:31:17
2.5K0
发布2022-07-13 15:31:17
举报
文章被收录于专栏:开源部署

众所周知,Nginx是一个高性能的web服务器,尤其在高并发和处理静态页面的时候有先天的优势;很大一部分得益于缓存的开启,那么如何开启nginx的缓存呢。

简单来说可以分两步: 1.定义缓存存储目录并指定共享内存空间 2.在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;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档