使用OpenResty进行限流的基本配置

本文介绍了如何在Linux环境下安装OpenResty,并详细阐述了如何利用OpenResty进行限流配置,包括控制速率和并发量。首先,通过添加仓库和执行安装命令完成OpenResty的安装。接着,修改nginx配置文件,设置本地缓存和lua脚本调用。在限流部分,详细解析了nginx的限流指令,如控制速率时结合burst参数处理突发流量,以及使用limit_conn_module限制并发连接数。
摘要由CSDN通过智能技术生成


以商城轮播广告为例
采用多级缓存的方式来减少下游系统的服务压力。

先查询openresty本地缓存 ,如果没有,再查询redis中的数据,如果没有,再查询mysql中的数据,但凡有数据 则返回即可。
记录使用OpenResty(Nginx+lua)进行限流最基础的配置。

1.安装OpenResty

1. 添加仓库执行命令
 yum install yum-utils
 yum-config-manager --add-repo  	 https://openresty.org/package/centos/openresty.repo
2. 执行安装
yum install openresty
3. 安装成功后 会在默认的目录如下:
/usr/local/openresty

2.安装nginx

默认已经安装好了nginx,在目录:/usr/local/openresty/nginx 下。

修改/usr/local/openresty/nginx/conf/nginx.conf,将配置文件使用的根设置为root,目的就是将来要使用lua脚本的时候 ,直接可以加载在root下的lua脚本。

cd /usr/local/openresty/nginx/conf
vi nginx.conf

修改代码如下:
在这里插入图片描述

3.测试访问

重启下centos虚拟机,然后访问测试Nginx

访问地址:http://192.168.211.132/
在这里插入图片描述

4.广告的载入和读取

实现思路:
先查询openresty本地缓存 如果 没有

再查询redis中的数据,如果没有

再查询mysql中的数据,但凡有数据 则返回即可。

1.声明nginx缓存
lua_shared_dict dis_cache 128m;
2.在/root/lua目录下创建read_content.lua:
ngx.header.content_type="application/json;charset=utf8"
local uri_args = ngx.req.get_uri_args();
local id = uri_args["id"];
--获取本地缓存
local cache_ngx = ngx.shared.dis_cache;
--根据ID 获取本地缓存数据
local contentCache = cache_ngx:get('content_cache_'..id);

if contentCache == "" or contentCache == nil then
    local redis = require("resty.redis");
    local red = redis:new()
    red:set_timeout(2000)
    red:connect
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值