open_file_cache_valid 是设置主动更新和检查的时间,表示每隔 30 秒检查缓存文件的元信息有没有对应的更新,如果有更新就需要去做对应的更新,它是一个更新的策略 。
location / {index index.htm index.html;expires max;open_file_cache max=1000 inactive=20s;open_file_cache_valid 30s;open_file_cache_min_uses 2;open_file_cache_errors on;}代理缓存优化最后就是代理缓存的优化了,代理缓存比较常见,比如说代理访问 php 后台服务并作缓存,也可以代理 JAVA 服务,缓存 JAVA 后台服务的返回数据,注意这里不局限于通过 http_proxy来作代理缓存,只要 Nginx 支持的代理模式(UWSGI、SGI)都可以设置代理缓存 。你可以来看一下通过http_proxy设置的如下示例:
proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60mlocation / {proxy_cache my_cache;…}proxy_cache_path 表示在本地分配哪个路径来存储并缓存后台返回数据;cache levels 表示存放文件的分层方式;my_cache:10m max_size=10g 分别表示是开辟一个名为my_cache共享块(用于统计访问次数)及缓存的单个文件的最大大小等 。这些都是做对应的缓存在本地的文件目录相关属性的一些设置 。另外一块的设置表示在proxy_cache 的时候,通过 location 引用到 cache 的名称 。
代理缓存的特性是什么呢?首先通过 Nginx 作代理,可以支持实现动静态的分离,静态元素直接交给 Nginx 来处理,再把后端动态数据适当作缓存 。通常做这种代理+缓存的架构,是能有效的提高整体网站的访问并发性能 。
缓存使用注意问题对于缓存的整体使用,之前说的缓存越多越好,越靠前越好,命中率越高越好,但是同时我们也需要综合考虑,并且注意缓存在使用时遇到的一些实际问题 。
- 文件更新策略问题 。文件后端做缓存的配置策略的时候,要考虑到缓存的删除策略、更新策略,怎么保证它的后端数据更新对于前端用户能够及时的感知 。
- 缓存命中率失败给后端造成的瞬间压力 。我们知道,当前端缓存的元素越多,命中率越高,对于后台的压力就越少 。当一旦前端的缓存失效,或者某个节点迁移,或者某一部分的前端头信息失效,造成后端缓存瞬间压力,就可能会造成比较灾难性的后果 。所以你在网站设计的时候也需要考虑,怎么去避免这种缓存失效?一旦前端缓存失效,你怎么保证后端服务的高可用而不受影响?
- 多节点缓存一致性 。你在做缓存设置的时候也需要考虑到,假设前端有很多个节点,保存同样的一部分内容的时候,怎么保证这些数据是能够达到一致性,这个时候也涉及缓存架构的设计,前端的缓存节点的更新策略,这些也是你在实际使用缓存时应该注意的问题 。
【Nginx高性能优化配置实战总结】
推荐阅读
- MySQL 数据库性能优化,看这篇就够了
- 淘宝长尾词是什么 淘宝关键词多久优化一次
- 实例详解,百度搜索oCPC优化技巧
- 淘宝seo的三大相关包括 淘宝seo是什么意思,怎么优化
- 单线程性能秒杀多线程!多路复用IO实现高性能网络服务
- 淘宝seo的三大误区 淘宝seo是什么意思,怎么优化
- MySQL索引失效分析与优化
- 磁盘I/O性能优化的几个思路
- Nginx 极简教程,常用场景统统解析
- 轻薄、办公、高性能,这四款笔记本满足学生党所有需求
