佛山网站建设拓客科技,网站后缀ga,wordpress时间插件,广州市酒店网站设计摘要#xff1a;
web 应用业务缓存通常3级#xff1a;
一级缓存#xff1a;JVM 本地缓存
二级缓存#xff1a;Redis集中式缓存
三级缓存#xff1a;Nginx Proxy Cache 缓存 或 Nginx Lua 缓存
四级缓存#xff1a;静态资源CDN缓存 本文主要分享 Nginx Proxy Cache 缓…摘要
web 应用业务缓存通常3级
一级缓存JVM 本地缓存
二级缓存Redis集中式缓存
三级缓存Nginx Proxy Cache 缓存 或 Nginx Lua 缓存
四级缓存静态资源CDN缓存 本文主要分享 Nginx Proxy Cache 缓存
缓存方式举例 配置 nginx.conf 文件 ......# 配置cache缓存节点 levels可以有2级目录 key2_zone键值对存储区域 inactive文件有效期 max_size文件容量proxy_cache_path /data/nginx/tmp-test levels1:2 keys_zonetmp-test:100m inactive7d max_size10g;# 配置https访问server {listen 8443 ssl;server_name order.abc.com;ssl_certificate /data/order/fullchain.pem;ssl_certificate_key /data/order/privkey.pem;ssl_session_timeout 1d;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;location / {#将IP和端口改为DataEase服务器的访问地址和端口proxy_pass http://172.16.16.16:9995/;server_name_in_redirect off;# 缓存节点proxy_cache tmp-test;proxy_cache_key $request_uri;# 只有请求返回以下状态码才会缓存 有效期是7天proxy_cache_valid 200 206 304 302 7d;# websocket 代理proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection upgrade;proxy_redirect http:// https://;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}
...... 实际项目应用
在Nginx端配置proxy cache缓存节点并非不常见但在某些场景下可能会较少使用这主要取决于特定的使用场景和配置需求。以下是一些可能导致这种情况的原因
资源考虑
内存和磁盘空间配置proxy cache需要分配一定的内存用于缓存元数据和磁盘空间用于存储实际缓存内容。如果服务器资源有限或者不希望将过多资源用于缓存可能会选择不配置或配置较小的缓存。性能考虑虽然缓存可以提高性能但过多的缓存数据也可能导致缓存失效、查找和更新等操作的性能下降。
数据源特性
动态内容对于经常变动的动态内容如实时数据、用户信息等配置缓存可能不是最佳选择因为缓存内容很快就会过时。第三方服务当Nginx代理的是第三方服务时可能由于服务协议、响应头或其他因素导致缓存策略不易控制或无效。
配置复杂性
配置细节Nginx的proxy cache配置相对复杂需要考虑多个指令和参数如proxy_cache_path、proxy_cache、proxy_cache_valid等这可能会增加配置和管理的复杂性。缓存失效缓存失效策略需要根据实际情况进行配置如基于时间、请求次数等这可能需要额外的考虑和配置。
默认行为
Nginx默认不缓存Nginx默认不会为代理的请求启用缓存这可能是因为Nginx希望将缓存控制权留给用户或后端服务器。
其他缓存策略
CDN缓存在实际应用中可能会使用CDN内容分发网络进行缓存CDN通常具有更丰富的缓存策略和功能可以更有效地处理缓存相关问题。应用层缓存有些应用可能会在自己的代码中实现缓存逻辑以更直接地控制缓存内容和行为。Nignx Lua缓存以高效的协程机制可以实现远超过 Nginx Proxy Cache 的效果。Nginx Proxy Cache还是以读取/写入磁盘文件的方式来实现数据缓存速度和效率与内存相比相差很多。
安全性考虑
缓存敏感数据可能会带来安全风险因此在某些情况下为了避免敏感数据的泄露可能会选择不配置或谨慎配置Nginx的proxy cache。
综上所述是否在Nginx端配置proxy cache缓存节点取决于多种因素包括资源考虑、数据源特性、配置复杂性、默认行为、其他缓存策略以及安全性考虑等。在实际应用中需要根据具体情况进行权衡和选择。