合集-OpenResty

摘要:OpenResty 简介与安装 1. 简介 OpenResty是一个基于Nginx与Lua的高性能web平台,其内部继承了大量精良的Lua库,第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发,扩展性极高的动态的web应用,可以方便的基于nginx进行二次开发。 Nginx是一个轻量级的, 阅读全文
posted @ 2024-07-11 22:35 小郑[努力版] 阅读(639) 评论(0) 推荐(2)
摘要:引入cjson模块 local json = require(“cjson”) json.encode 将表格(table 包含哈希键值对 和 数组键值对)数据编码为 JSON 字符串 格式: jsonString = json.encode(表格对象) table转json字符串 table包含哈 阅读全文
posted @ 2025-04-13 10:51 小郑[努力版] 阅读(84) 评论(0) 推荐(0)
摘要:使用缓存 概述 nginx是一个master进程多个worker进程的工作方式,因此我们可能需要再多个worker进程中共享数据 使用ngx.shared.DICT来实现全局内存共享 使用缓存 在nginx的conf的http部分分配内存大小 语法:lua_shared_dict <name> <s 阅读全文
posted @ 2025-04-13 15:43 小郑[努力版] 阅读(63) 评论(0) 推荐(0)
摘要:发起Http请求 发起内部请求 capture请求方法 res = ngx.location.capture(uri,{ options? }); options可以传参数和设置请求方式 local res = ngx.location.capture("/product",{ method = n 阅读全文
posted @ 2025-04-13 11:29 小郑[努力版] 阅读(78) 评论(0) 推荐(0)
摘要:使用MySQL 默认安装OpenResty时已经自带了mysql模块 我们编写一个案例,操作mysql数据库,编辑test.lua 定义关闭mysql的连接 local function close_db(db) if not db then return end db:close() end lo 阅读全文
posted @ 2025-04-13 11:15 小郑[努力版] 阅读(41) 评论(0) 推荐(0)
摘要:连接redis服务器 基本使用 定义 redis关闭连接的方法 local function close_redis(red) if not red then return end local ok, err = red:close() if not ok then ngx.say("close r 阅读全文
posted @ 2025-04-13 11:08 小郑[努力版] 阅读(140) 评论(0) 推荐(0)
摘要:需求背景 现在app客户端请求后台服务是非常常用的请求方式,在我们写开放api接口时如何保证数据的安全, 我们先看看有哪些安全性的问题 请求来源(身份)是否合法? 请求参数被篡改? 请求的唯一性(不可复制) 实现目标 案例 为了保证数据在通信时的安全性,我们可以采用参数签名的方式来进行相关验证。 我 阅读全文
posted @ 2025-04-13 17:09 小郑[努力版] 阅读(101) 评论(0) 推荐(0)
摘要:需求背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。 对于黑名单之内的 IP ,拒绝提供服务。 设计方案 实现目标 实现 IP 黑名单的功能有很多途径: 1、在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求; 2、在 Web Server 层 阅读全文
posted @ 2025-04-13 17:02 小郑[努力版] 阅读(51) 评论(0) 推荐(0)
摘要:需求背景 在高并发场景下为了防止某个访问ip访问的频率过高,有时候会需要控制用户的访问频次 在openresty中,可以找到: set_by_lua,rewrite_by_lua,access_by_lua,content_by_lua等方法。 那么访问控制应该是,access阶段。 我们用Ngin 阅读全文
posted @ 2025-04-13 17:00 小郑[努力版] 阅读(45) 评论(0) 推荐(0)
摘要:OpenResty的执行流程概览 引出问题 location /test { set $a 32; echo $a; set $a 56; echo $a; } 输出结果 56 56 为什么是56 56? nginx处理为一个用户请求时,都是按照若干个不同阶段依次处理的,而不是根据配置文件上的顺序 阅读全文
posted @ 2025-04-13 16:55 小郑[努力版] 阅读(168) 评论(0) 推荐(0)