随笔分类 -  中间件技术 / nginx

摘要:1.切割http日志 LOGS_DIR="/data/nlu/chatgpt_adapter/nginx/logs/http" cd ${LOGS_DIR} 切换到日志目录文件下 获取error.log文件的字节大小 log_size=du -b error.log | awk '{print $1 阅读全文
posted @ 2025-04-23 22:37 小郑[努力版] 阅读(32) 评论(0) 推荐(0)
摘要:需求背景 现在app客户端请求后台服务是非常常用的请求方式,在我们写开放api接口时如何保证数据的安全, 我们先看看有哪些安全性的问题 请求来源(身份)是否合法? 请求参数被篡改? 请求的唯一性(不可复制) 实现目标 案例 为了保证数据在通信时的安全性,我们可以采用参数签名的方式来进行相关验证。 我 阅读全文
posted @ 2025-04-13 17:09 小郑[努力版] 阅读(98) 评论(0) 推荐(0)
摘要:需求背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。 对于黑名单之内的 IP ,拒绝提供服务。 设计方案 实现目标 实现 IP 黑名单的功能有很多途径: 1、在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求; 2、在 Web Server 层 阅读全文
posted @ 2025-04-13 17:02 小郑[努力版] 阅读(45) 评论(0) 推荐(0)
摘要:需求背景 在高并发场景下为了防止某个访问ip访问的频率过高,有时候会需要控制用户的访问频次 在openresty中,可以找到: set_by_lua,rewrite_by_lua,access_by_lua,content_by_lua等方法。 那么访问控制应该是,access阶段。 我们用Ngin 阅读全文
posted @ 2025-04-13 17:00 小郑[努力版] 阅读(44) 评论(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 小郑[努力版] 阅读(150) 评论(0) 推荐(0)
摘要:使用缓存 概述 nginx是一个master进程多个worker进程的工作方式,因此我们可能需要再多个worker进程中共享数据 使用ngx.shared.DICT来实现全局内存共享 使用缓存 在nginx的conf的http部分分配内存大小 语法:lua_shared_dict <name> <s 阅读全文
posted @ 2025-04-13 15:43 小郑[努力版] 阅读(60) 评论(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 小郑[努力版] 阅读(77) 评论(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 小郑[努力版] 阅读(39) 评论(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 小郑[努力版] 阅读(135) 评论(0) 推荐(0)
摘要:引入cjson模块 local json = require(“cjson”) json.encode 将表格(table 包含哈希键值对 和 数组键值对)数据编码为 JSON 字符串 格式: jsonString = json.encode(表格对象) table转json字符串 table包含哈 阅读全文
posted @ 2025-04-13 10:51 小郑[努力版] 阅读(80) 评论(0) 推荐(0)
摘要:APISix-插件开发 源码下载:git clone https://github.com/apache/apisix.git apisix目录结构如下 apisix-2.0/ ├── admin/ # 管理接口相关模块 │ ├── d_api_router.lua # API 路由定义 │ ├── 阅读全文
posted @ 2025-04-10 21:52 小郑[努力版] 阅读(152) 评论(0) 推荐(0)