对于一个web服务器程序来说,对字符串处理的需求是必须的。由于web环境下的各种编码,也导致了web服务器程序字符串处理的繁杂性。在nginx源码中,ngx_string.c 这个文件就是来应对字符串处理的一些源码,源码中经常的使用到了这里中的函数,本文对ngx_string.c 我们来看它的基本数据结构: struct {
size_t len;
u_char *
1、lua的os.time()返回时间戳,单位是秒而不是毫秒。对于这方面貌似要么使用第三方库才能解决,不过一般秒也够用了。 print(os.time()) 1363263509 2、lua的模块是以文件为单位,所有的模块需要定义模块名和上下文,下面就是一个通用的模块供require的。在nginx配置文件中写入 lua_code_cache = off 时,就算不定义module
转载
2024-03-29 12:25:02
501阅读
1. ngx_http_top_header_filter该链表主要是用于构造响应消息的消息报头。ngx_http_top_header_filter 单链表有如下模块插入了操作:ngx_http_not_modified_filter_module: ngx_http_not_modified_header_filterngx_http_headers_filter_module:ngx_htt
ngx_lua模块的原理:1、每个worker(工作进程)创建一个Lua VM,worker内所有协程共享VM;2、将Nginx I/O原语封装后注入 Lua VM,允许Lua代码直接访问;3、每个外部请求都由一个Lua协程处理,协程之间数据隔离;4、Lua代码调用I/O操作等异步接口时,会挂起当前协程(并保护上下文数据),而不阻塞worker;5、I/O等异步操作完成时还原相关协程上
time_helper.lualocal _M = {};
local ffi = require("ffi")
ffi.cdef[[
struct timeval {
lon
原创
2017-03-03 16:31:55
10000+阅读
要求利用keil4软件搭建好实验环境;实现0~99秒的计时,在数码管上显示秒计时数(到达99秒后重新从0开始);按下S2键,暂停计时,按下S3键,继续计时,达到类似秒表的效果;2.实现秒小数点后第一位和第二位计时数值的显示。//按下键盘中的S2键,暂停计时;按下S3键,继续计时
//晶振为11.0592MHz
#include<reg52.h>
#define uchar unsign
转载
2024-03-29 14:12:37
29阅读
3.7 发送响应请求处理完毕后,需要向用户发送HTTP响应,告知客户端Nginx的执行结果。HTTP响应主要包括响应行、响应头部、包体三部分。发送HTTP响应时需要执行发送HTTP头部(发送HTTP头部时也会发送响应行)和发送HTTP包体两步操作。本节将以发送经典的“Hello World”为例来说明如何发送响应。3.7.1 发送HTTP头部下面看一下HTTP框架提供的发送HTTP头部的方法,如下
转载
2024-03-27 09:12:21
73阅读
0、手册应该是学习语言的最好的文档,一边看文档,一边想把它记录下来,lua 5.2 英文手册地址:http://www.lua.org/manual/5.2/manual.html在lua中,任何值都可以拥有元表(metatable)。元表本质是就是lua中table,但同时通过元表可以自定义在某些值上的操作。通过设置元表中特定的域(fields)值,可以改变某些值的操作行为。比如,当非数值类型的
ngx_http_core_module模块处理请求时,会有大量的变量,这些变量可以通过访问日志来记录,也可以用于其他nginx模块接收。在对请求做策略入改写等到都会使用到一些变量。以下为ngx_http_core_module模块提供的变量总结:$arg_PARAMETER复制代码HTTP 请求中某个参数的值,如/get?value=a.chen.com,可以用$arg_site取得a.chen
需求背景类似于论坛型的网站经常会被黑掉,除了增加硬件防护感觉效果还是不太好,还会偶尔被黑,waf的功能正好实现了这个需求。waf的作用: 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击
防止svn/备份之类文件泄漏
防止ApacheBench之类压力测试工具的攻击
屏蔽常见的扫描黑客工具,扫描器
屏蔽异常的网络请求
屏蔽图片附件类目录php执行权限
防止we
转载
2024-08-30 18:00:18
25阅读
下载连接:nginx:http://nginx.org/en/download.html
http://nginx.org/download/
lua-nginx模块安装文件:https://github.com/openresty/lua-nginx-module/tags
lua-zlib模块安装文件: https://github.com/brimwor
在网游程序里混过一阵子的程序员大都知道,“异步逻辑”是游戏逻辑里最容易失误的地方之一。刷钱、刷经验、不花钱得到道具,然后关服、回档、删号等等等等,其可能造成的危害不胜枚举。而且实际上银行系统之类的地方遇到这种问题就更有趣了:)。 不同团队对此类问题的称呼不同,
转载
2024-03-29 18:46:29
79阅读
一,首先看一下时间换算单位,澄清一下概念:1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)
1秒=1,000,000 微秒(μs) 1微秒=1/1,000,000秒(s)
1秒=1,000,000,000 纳秒(ns) 1纳秒=1/1,000,000,000秒(s)
转载
2024-05-01 11:18:48
78阅读
MOOCHINE - 一个简单的轻量级的web framework, 基于ngx_OpenResty(ngx_lua,ttp://openresty.org) 做的框架,https://github.com/appwilldev/moochinengx_lua_wafngx_lua_waf是我刚入职趣游时候开发的一个基于ngx_lua的web应用防火墙。代码很简单,开发初衷主要是使用简单,高性能和
原创
2014-11-01 18:06:00
751阅读
ngx_lua模块的原理:1、每个worker(工作进程)创建一个Lua VM,worker内所有协程共享VM;2、将Nginx I/O原语封装后 Lua VM,允许Lua代码直接访问;3、每个外部请求都由一个Lua协程处理,协程之间数据隔离;4、Lua代码调用I/O操作等异步接口时,会挂起当前协程(并保护上下文数据),而不阻塞worker;5、I/O等异步操作完成时还原相关协程上...
转载
2022-04-11 11:16:16
199阅读
linux 内存是后台开发人员,需要深入了解的计算机资源。合理的使用内存,有助于提升机器的性能和稳定性。本文主要介绍 linux 内存组织结构和页面布局,内存碎片产生原因和优化算法,linux 内核几种内存管理的方法,内存使用场景以及内存使用的那些坑。从内存的原理和结构,到内存的算法优化,再到使用场景,去探寻内存管理的机制和奥秘。一、走进 linux 内存1、内存是什么?1)内存又称主存,是 CP
ngx_lua 模块 https://segmentfault.com/a/1190000012233483 nginx lua重置请求参数及常量备忘 Lua_Nginx_API Lua_Nginx_API ngx_lua模块的原理: 1、每个worker(工作进程)创建一个Lua VM,worke
转载
2019-03-07 16:25:00
234阅读
2评论
本篇开始正式做功能,我在开发拼团提醒之前,拼多多并没有放出拼团人数不足就提醒卖家的功能。有这个想法主要来源于朋友的抱怨,我想这应该是大部分卖家的心声吧。经过分析,拿到了几个api,不要问我api怎么拿到的,这不是本系列的内容。接口1:http://apiv4.yangkeduo.com/mall/{0}/info?pdduid=0(传入店铺编号,可以获取店铺资料)接口2:http://apiv
ngx_lua模块的原理:1、每个worker(工作进程)创建一个Lua VM,worker内所有协程共享VM;2、将Nginx I/O原语封装后注入 Lua VM,允许Lua代码直接访问;3、每个外部请求都由一个Lua协程处理,协程之间数据隔离;4、Lua代码调用I/O操作等异步接口时,会挂起当前协程(并保护上下文数据),而不阻塞worker;5、I/O等异步操作完成时还原相关协程上...
转载
2021-07-12 15:34:48
285阅读
nginx模块nginx作为项目的7层代理入口,对于http请求的过滤,如sql注入,xss攻击等过滤功能较弱,研究了下开源的一些waf,完全开源的https://github.com/xsec-lab/x-waf,利用lua来过滤请求,同时拥有一个管理控制台,添加规则和代理,但使用过程中,缺少文档,碰到一些问题,需要调试和增强,促使用window编译通过源代码lua和使用x-waf。lua-ng