在开发kong自定义插件时,可能会面对需要多个worker共享一些信息或者接收外部的程序输入的情况。而多进程共享信息常用的方式就是redis。kong里面已经包含了lua-resty-redis 这个redis连接库,在插件代码中直接 require "resty.redis"就可以使用了一些要注意的点连接池由于kong的插件开启后,对于指定的Route/Service,每个请求都将执行一遍。如果
今天我们来学习一下Lua中的迭代器:Iterator。 迭代器是一种可以遍历集合中所有元素的机制。在Lua中,通常将迭代器表示为函数,每调用一次函数,即返回集合中的下一个元素。 每个迭代器都需要在每次调用中保持一些状态,这样才可以知道它所在的位置以及如何进入到下一步。Closure为这类任务
local headers = ngx.req.get_headers() ngx.say("headers begin", "<br/>") ngx.say(
原创
2023-04-11 07:24:27
128阅读
Lua是一个被设计成用于扩展C/C++编程的轻量级脚本语言。不幸的是,网上很少有关于这个语言的在线教程。我主要通过阅读其源代码来了解它是怎样工作并且通过一些发布的程序学习它。希望,通过下面的教程,会让学习Lua更加简单。本教程涵盖了Lua5.1。在Lua的每一个版本中都有一些非常不同之处。下面的示例代码将不能在老版本的Lua下运行。如果你仍然在使用老版本而且不愿意升级,不用担心,我已经
转载
2024-05-21 16:48:23
43阅读
添加变量req_500_header set $req_500_header ""; header_filter_by_lua ' if ngx.status >= 500 then local h = ngx.req.get_headers() for k, v in pairs(h) do ng ...
转载
2021-11-04 15:01:00
1282阅读
2评论
【什么是OAuth】一种为用户的资源授权提供安全,开放的标准的协议;它可以使第三方不触及用户的账号和信息,从而不会带来安全问题;【OAuth的流程】A:请求未经授权的request token;B:请求经授权的request token;C: 用授权的request token获取access token; A. 使用者(第三方软件)向OAUTH服务提
转载
2024-09-17 15:53:02
54阅读
上文提到的简单I/O模型对于简单的需求还算适用,但对于诸如同时读写多个文件等更高级的文件操作来说就不够了。对于这样的操作,需要用到完整地I/O模型。用函数io.open来打开一个文件,这个函数有两个参数,一个参数是待打开文件的文件名,另一个参数是一个模式字符串,该函数返回对应文件的流。在打开文件后,可以使用方法read和write从流中读取和向流中写入。 I/O库提供了三个预定义的C语言句柄:io
转载
2024-04-23 21:49:14
89阅读
1.需求:用户拖动表格的表头可以拖动宽度,并且记住拖动的宽度。2.逻辑思路基本这种功能都是前端进行实现的,那么就需要利用localStroage的功能进行存储到本地,然后页面进行刷新的时候就会调用created,并设置上宽度就可以。3.实现在表格设置函数 打印出的属性,会有拖动的宽度,还有你设置列的名字 现在data函数里面定义一个枚举值,有多少列就对应多少条,pr
转载
2024-03-15 08:44:29
44阅读
3.7 发送响应请求处理完毕后,需要向用户发送HTTP响应,告知客户端Nginx的执行结果。HTTP响应主要包括响应行、响应头部、包体三部分。发送HTTP响应时需要执行发送HTTP头部(发送HTTP头部时也会发送响应行)和发送HTTP包体两步操作。本节将以发送经典的“Hello World”为例来说明如何发送响应。3.7.1 发送HTTP头部下面看一下HTTP框架提供的发送HTTP头部的方法,如下
转载
2024-03-27 09:12:21
73阅读
有时候为了伪装自己的真实服务器环境.不像让对方知道自己的webserver真实环境,就不得不修改我们的webserer软件了!今天看了一下baidu.com的webserver感觉像是nginx修改的.C:/curl-7.18.0>curl.exe -I www.baidu.comHTTP/1.1 200 OKDate: Tue, 11 Mar 2008 05:00:39 GMTServer
最近一直在学习nginx+lua这东西,之前也从未接触过nginx lua,甚至不知道http协议是什么,所以在此记录并分享一下学习成果,我会用通俗易懂的方式来说明问题,以便于那些和我一样从未接触过这些的也人能读懂,如有不足,希望各方大佬指出,感激不尽。 关于他们概念就不多解释了,自行百度,都很全面,我将从软件的安装
转载
2024-05-30 09:07:14
49阅读
nginx与lua的执行顺序和步骤说明 一、nginx执行步骤nginx在处理每一个用户请求时,都是按照若干个不同的阶段依次处理的,与配置文件上的顺序没有关系,详细内容可以阅读《深入理解nginx:模块开发与架构解析》这本书,这里只做简单介绍;1、post-read读取请求内容阶段,nginx读取并解析完请求头之后就立即开始运行;2、server-rewriteserver
转载
2024-03-05 22:20:25
322阅读
在配置基于Nginx服务器的网站时,必然会使用到Nginx内置变量配置相关信息,下面将根据网上的相关资料进行整理,以方便在配置Nginx时查询。内置变量存放在 ngx_http_core_module 模块中,变量的命名方式和 apache 服务器变量是一致的。总而言之,这些变量代表着客户端请求头的内容,例如 $http_user_agent , $http_cookie , 等等。下面是Ngin
场景:以Nginx作为代理服务器进行负载均衡处理,发布项目为一个互联网项目,在进行一个接口调用时(此接口为上传Excel并解析,解析的一部分数据会在后端存储到cookie中)。正常上传Excel是没问题的,但是当Excel中的解析数据多,后来发现是解析数据并存储到cookie中的值多了,这个时候,访问Nginx时,Nginx直接报502错误。排查原因:表面现象:Nginx直接跳转到了502错误界面
转载
2024-06-18 07:57:47
65阅读
此处我说的HTTP服务主要指如访问京东网站时我们看到的热门搜索、用户登录、实时价格、实时库存、服务支持、广告语等这种非Web页面,而是在Web页面中异步加载的相关数据。这些服务有个特点即访问量巨大、逻辑比较单一;但是如实时库存逻辑其实是非常复杂的。在京东这些服务每天有几亿十几亿的访问量,比如实时库存服务曾经在没有任何IP限流、DDos防御的情况被刷到600多万/分钟的访问量,而且能轻松应对。支撑如
转载
2024-06-14 14:10:18
141阅读
HTTP常见的请求头和响应头?请求头:Accept:告诉服务器,客户端支持的数据类型。Accept-Charset:告诉服务器,客户端采用的编码Host:客户端通过这个头告诉服务器,想访问的主机名User-Agent:客户端通过这个头告诉服务器,客户端的软件环境。Cookie:客户端通过这个头告诉服务器,可以向服务器带数据。与浏览器缓存相关的头:
协商缓存:If-Modified-Sin
转载
2024-05-30 13:33:43
208阅读
一、添加邮件头,抄送等信息 1.mail[“From”]表示发送者信息,包括姓名和邮件 2.mail[“To”]表示接收者信息,包括姓名和邮件地址 3.mail[“Subject”]表示摘要或者主题信息from email.mime.text import MIMEText
from email.header import Header
msg = MIMEText("Hello world",
转载
2024-05-05 17:22:12
245阅读
Linux socket领域,select、poll 和 epoll 是 Linux API 提供的 I/O 复用方式select 模型int select (int n, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *timeout);select 函数监视的文件描述符分 3 类,分别是
转载
2024-09-26 14:36:56
87阅读
请求分为1.请求方法(Request Method)2.请求链接(Request URL)3.请求头(Request Headers)4.请求体(Request Body) 1.请求方法(Request Method)常用方法:GET 和 POSTGET 和 POST请求方法的主要区别:(1)GET请求中的参数都包含在URL中,数据可以在URL中看到;而POST请求提交的数据并不包含在URL中,
转载
2024-04-03 15:26:00
157阅读
一、请求报文 客户端在向服务器发送数据时,不仅有一些显式的数据(用户名、密码等), 还需要传递一些隐式的数据,例如是否缓冲、是否长连接、报文长度等信息。 请求报文就包含这些隐式和显式的信息。 请求报文结构: 1.请求行:主要包括请求方式(如POST、GET等),请求对应的URL与请求头字段HOST中的属性组成完整的请求URL。 2.请求头:是HTTP的报文头,报文头包含若干属性