04 2025 档案
摘要:Ajax ajax是一种用向服务器异步发送http请求并接收响应的技术,在传统的web应用程序中,用户与服务进行交互时必须刷新整个页面才能显示新的内容,而ajax技术通过在后台发送异步HTTP请求并接收响应,使得用户能够在不刷新整个页面的情况下获取更新后的数据,这种技术可以减少网络带宽的占用,提高用
阅读全文
摘要:web应用:当用户在网站进行某个操作需要很长时间完成时,可以将这种操作交由celery执行,直接返回给用户,等到celery执行完成以后通知用户 任务场景:比如在运维场景下需要批量在几百台机器上执行某些命令或者任务,此时celery可以轻松处理 定时任务:向定时导数据报表、定时发送通知类似场景,虽然
阅读全文
摘要:使用Filebeat+kafka+Logstash+ES构建日志分析系统 kafka是一种分布式,高吞吐,可扩展的消息队列服务,广泛用于日志收集,监控数据聚合,在线和离线分析等大数据领域,已成为大数据生态中不可或缺的部分 在实际应用场景中,为了满足大数据实时检索的需求,可以使用filebeat采集日
阅读全文
摘要: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
阅读全文
摘要:Django验证系统 Django验证同时提供身份验证和授权,通常称为身份验证系统,因为这些功能在某种程度上是耦合的 User对象 User对象是认证系统的核心。它们通常代表与你网站进行交互的人,并用于启用诸如限制访问、注册用户配置文件、将内容与创建者关联等功能。在 Django 的认证框架中只存在
阅读全文
摘要:Mysql性能优化 基本原则 让MySQL回归存储的基本智能:Mysql数据库只用于数据集的存储,不进行数据的复杂计算,不承载业务逻辑,确保存储和计算分离 查询数据时,尽量单表查询,减少跨库查询和多表关联查询 杜绝大事务,大SQL、大批量、大字段等一系列性能杀手 大事务:运行步骤较多,涉及的表和字段
阅读全文
摘要:中间件的应用 之前我们已经实现了用户必须登录才能投票的限制,但是一个新的问题来了。如果我们的应用中有很多功能都需要用户先登录才能执行,例如将前面导出Excel报表和查看统计图表的功能都做了必须登录才能访问的限制,那么我们是不是需要在每个视图函数中添加代码来检查session中是否包含userid的代
阅读全文
摘要:数据库回顾 关系数据库特点 具体表象:用二维表(有行有列)组织数据 编程语言:结构化查询语言(SQL) DDL:数据定义语言 DML:数据操作语言 DCL:数据控制语言 TCL:事务控制语言 数据引擎 特性 InnoDB MyISAM 存储限制 有 有 事务 支持 锁机制 行锁 表锁 B树索引 支持
阅读全文
摘要:django日志记录 使用python内置的logging模块打印日志,python的logging模块分为四部分组成: 记录器(loggers) 处理程序(handlers) 过滤器(Filter) 格式化(formatters) Logger记录器 Logger 是日志系统的入口。每个 logg
阅读全文
摘要:字符串 字符串属于不可变类型,对字符串的操作会产生新的字符串,原来的值并没有发生变化 字符串的运算 + 字符串的拼接 * 重复字符串内容 in 或 not in 判断一个字符串中是否包含另一个字符串 []和[:]运算符从字符串取出某个字符或某些字符。 索引和切片 字符串的索引和切片操作跟列表、元组几
阅读全文
摘要:什么是shell shell是一个用c语言编写的程序,它是用户使用linux的桥梁。shell既是一种命令语言,又是一种程序设局语言。 shell是一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 shell属于内置的脚本,程序开发的效率非常高,依赖于功能强大的命令
阅读全文
摘要:需求背景 现在app客户端请求后台服务是非常常用的请求方式,在我们写开放api接口时如何保证数据的安全, 我们先看看有哪些安全性的问题 请求来源(身份)是否合法? 请求参数被篡改? 请求的唯一性(不可复制) 实现目标 案例 为了保证数据在通信时的安全性,我们可以采用参数签名的方式来进行相关验证。 我
阅读全文
摘要:需求背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。 对于黑名单之内的 IP ,拒绝提供服务。 设计方案 实现目标 实现 IP 黑名单的功能有很多途径: 1、在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求; 2、在 Web Server 层
阅读全文
摘要:需求背景 在高并发场景下为了防止某个访问ip访问的频率过高,有时候会需要控制用户的访问频次 在openresty中,可以找到: set_by_lua,rewrite_by_lua,access_by_lua,content_by_lua等方法。 那么访问控制应该是,access阶段。 我们用Ngin
阅读全文
摘要:OpenResty的执行流程概览 引出问题 location /test { set $a 32; echo $a; set $a 56; echo $a; } 输出结果 56 56 为什么是56 56? nginx处理为一个用户请求时,都是按照若干个不同阶段依次处理的,而不是根据配置文件上的顺序
阅读全文
摘要:使用缓存 概述 nginx是一个master进程多个worker进程的工作方式,因此我们可能需要再多个worker进程中共享数据 使用ngx.shared.DICT来实现全局内存共享 使用缓存 在nginx的conf的http部分分配内存大小 语法:lua_shared_dict <name> <s
阅读全文
摘要:发起Http请求 发起内部请求 capture请求方法 res = ngx.location.capture(uri,{ options? }); options可以传参数和设置请求方式 local res = ngx.location.capture("/product",{ method = n
阅读全文
摘要:使用MySQL 默认安装OpenResty时已经自带了mysql模块 我们编写一个案例,操作mysql数据库,编辑test.lua 定义关闭mysql的连接 local function close_db(db) if not db then return end db:close() end lo
阅读全文
摘要:连接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
阅读全文
摘要:引入cjson模块 local json = require(“cjson”) json.encode 将表格(table 包含哈希键值对 和 数组键值对)数据编码为 JSON 字符串 格式: jsonString = json.encode(表格对象) table转json字符串 table包含哈
阅读全文
摘要:APISix-插件开发 源码下载:git clone https://github.com/apache/apisix.git apisix目录结构如下 apisix-2.0/ ├── admin/ # 管理接口相关模块 │ ├── d_api_router.lua # API 路由定义 │ ├──
阅读全文
摘要:Lua 特性:轻量级,高效,支持面向过程编程和函数式编程,自动内存管理 Lua的特性: 变量名没有类型,值才有类型,变量名在运行时可与任何类型的值绑定 只有唯一的数据结构表(table),混合了数组,哈希,可以用任何类型的值作为key和value Lua代码编写规范 命名规范 所有lua文件名,使用
阅读全文