Nginx 之生产环境应用

通过nginx高速缓存来演示

在这之前可以了解$host变量的含义  http://blog.51cto.com/gyj110/2079981

案例分析

某电商平台商品详情页需要实现 700+ QPS(query操作,TPS提交操作),如何着手去做?
1. 首先为分析一下一个商品详情页有哪些信息

从中得出 商品详情页依懒了

对于商品详情页涉及了如下主要服务:

这么多数据不可能一起一下子就加载,不然会非常的卡,那么该怎么办呢?? 

  • 商品详情页HTML页面渲染
  • 价格服务 促销服务
  • 库存状态/配送至服务
  • 广告词服务
  • 预售/秒杀服务
  • 评价服务
  • 试用服务
  • 推荐服务
  • 商品介绍服务
  • 各品类相关的一些特殊服务 

解决方案核心:

1. 采用Ajax 动态加载 价格、广告、库存等服务

2. 采用key value 缓存详情页主体html。

方案架构:

请求不大时,我们一般把数据缓存在redis中,这样可以不用再去服务拿去数据,响应速度更快了, 但是当请求更多时,会出现瓶颈

问题:

当达到500QPS 的时候很难继续压测上去。

分析原因:

一个详情页html  主体达平均150 kb  那么在500QPS 已接近局域网宽带极限。必须减少内网通 信。
 比如,一个详情页面150kb,500QPS*150/1024=73M,一秒就发生73多M的网络传输,这已经非常接近宽带峰值128M

所以,我们可以把缓存放在通过nginx放在本地上

基于Nginx 静态缓存的解决方案:

 如图:我们通过ngnx配置把数据缓存在本地,这样用户的访问请求就不用经过商品详情页服务返回数据,除非当运维人员修改商品信息时要清除缓存,这时可以通过第三方来清除nginx配置的缓存,这样用户就可看到最新数据

该方案nginx配置实现

一、在http元素下添加缓存区声明。 

proxy_cache_path  /data/nginx/cache_item  levels=1:1:2 keys_zone=cache_item:500m inactive=30d max_size=10g;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值