这里使用的是kafka插件是doujiang大佬的https://github.com/doujiang24/lua-resty-kafka,版本为v0.2.0。

应用场景

在nginx转发中,记录非200请求的信息,遂打算在log_by_lua*中整合信息并发送kafka消息。下面附上openresty不同阶段的说明:

set_by_lua*: 流程分支处理判断变量初始化

rewrite_by_lua*: 转发、重定向、缓存等功能(例如特定请求代理到外网)

access_by_lua*: IP 准入、接口权限等情况集中处理(例如配合 iptable 完成简单防火墙)

content_by_lua*: 内容生成

header_filter_by_lua*: 响应头部过滤处理(例如添加头部信息)

body_filter_by_lua*: 响应体过滤处理(例如完成应答内容统一成大写)

log_by_lua*: 会话完成后本地异步完成日志记录(日志可以记录在本地,还可以同步到其他机器)

摘自:执行阶段概念

发现问题

实际使用中发现,lua-resty-kafka中使用的ngx.http.tcp由于nginx内核限制的问题,API不能使用,报错如下:



又尝试了一下header_filter_by_lua和body_filter_by_lua,也都是不能使用的,看到有使用ngx.time.at相关的,但是没有找到实践方案不知该如何尝试,遂放弃

解决

在content_by_lua*阶段也尝试一下,可以,能判断出ngx.status,但是有新的报错如下:



这个应该是kakfa节点的问题。

nginx+lua+openresty+kafka相关问题汇总的更多相关文章

  1. nginx lua集成kafka

    NGINX lua集成kafka 第一步:进入opresty目录 [root@node03 openresty]# cd /export/servers/openresty/ [root@node03 ...

  2. 用Nginx+Lua(OpenResty)开发高性能Web应用

    在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等场景:而把Nginx作为一个Web容器使用的还不是那么广泛.Nginx的高性能是大家公认的,而Nginx开 ...

  3. Nginx+Lua(OpenResty)开发高性能Web应用

    使用Nginx+Lua(OpenResty)开发高性能Web应用 博客分类: 跟我学Nginx+Lua开发 架构 ngx_luaopenresty 在互联网公司,Nginx可以说是标配组件,但是主要场 ...

  4. 使用Nginx+Lua(OpenResty)开发高性能Web应用

    摘自(http://jinnianshilongnian.iteye.com/blog/2280928) 在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等 ...

  5. 安装Nginx+Lua+OpenResty开发环境配置全过程实例

    安装Nginx+Lua+OpenResty开发环境配置全过程实例 OpenResty由Nginx核心加很多第三方模块组成,默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用. ...

  6. 高并发 Nginx+Lua OpenResty系列(1)——环境搭建

    OpenResty是一款基于Nginx的高性能负载均衡服务器容器,简单来说是Nginx+Lua.结合了Lua语言来对Nginx进行扩展,使得在Nginx上具有web容器功能. OpenResty运行环 ...

  7. Nginx+lua+openresty精简系列

    1. CentOS系统安装openresty 你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum update 命令).运行下面的 ...

  8. 高并发 Nginx+Lua OpenResty系列(10)——商品详情页

    本章以京东商品详情页为例,京东商品详情页虽然仅是单个页面,但是其数据聚合源是非常多的,除了一些实时性要求比较高的如价格.库存.服务支持等通过AJAX异步加载加载之外,其他的数据都是在后端做数据聚合然后 ...

  9. 高并发 Nginx+Lua OpenResty系列(9)——HTTP服务

    此处我说的HTTP服务主要指如访问京东网站时我们看到的热门搜索.用户登录.实时价格.实时库存.服务支持.广告语等这种非Web页面,而是在Web页面中异步加载的相关数据.这些服务有个特点即访问量巨大.逻 ...

  10. 高并发 Nginx+Lua OpenResty系列(3)——模块指令

    Nginx Lua 模块指令 Nginx共11个处理阶段,而相应的处理阶段是可以做插入式处理,即可插拔式架构:另外指令可以在http.server.server if.location.locatio ...

随机推荐

  1. GPS时钟装置,北斗卫星授时,ntp校时服务器,网络时间服务器

    GPS时钟装置,北斗卫星授时,ntp校时服务器,网络时间服务器 一.GPS时钟装置产品特点:技术交流-岳峰 15901092122:Q522508213 GPS时钟装置是针对计算机.自动化装置等进行校 ...

  2. 实验:笔记本电脑做桥接有线网络,笔记本通过wifi连手机热点,,硬件通过笔记本的有线网口上网

    1.问题 我们需要做实验,将我们设计的W5500实验板上internet,  搭建环境比较麻烦. 1)学校上网需要先HTTP认证: 2)家里经常路由器固定位置,没有足够长的网线: 3)有时候需要临时搭 ...

  3. canvas 模糊

    让style以50%的效果展示 创建2倍的canvas <!DOCTYPE html> <html> <head> <meta charset="u ...

  4. Docker学习——多阶段构建(六)

    之前的做法 在 Docker 17.05 版本之前,我们构建 Docker 镜像时,通常会采用两种方式: 全部放入一个 Dockerfile 一种方式是将所有的构建过程编包含在一个 Dockerfil ...

  5. meta标签整理大全

    一.H5标准声明,使用 HTML5 doctype,不区分大小写 <!DOCTYPE html> 二. 标准的 lang 属性写法 <head lang="en" ...

  6. 安卓10.0蓝牙HIDL的直通式初始化流程

    本文仅介绍扼要的流程,没有系统化介绍. 首先从system\bt\hci\src\hci_layer_android.cc文件的函数void hci_initialize() 开始初始化: void ...

  7. Http 包头里面有个content-length,可以获取下载的资源包大小

    NSDictionary *headerFieldsDic = request.responseHeaders; 包大小为:[headerFieldsDic[@"Content-Length ...

  8. 20200925--矩阵加法(奥赛一本通P93 6 多维数组)

    输入两个n行m列的矩阵A和B,输出它们的和A+B 输入: 第1行包含两个整数n和m(1<=n<=100,1<=m<=100),表示矩阵的行数和列数. 接下来n行,每行m个整数, ...

  9. 怎样修改linux内核

    1.先查看linux内核 uname -a 2.打开内核配置文件 sudo vi /etc/default/grub 3.跟新grub文件 sudo update-grub 4.最后重启电脑 sudo ...

  10. LoadRunner压力测试(web)

    1.打开Virtual User Generator->新建脚本->选择创建新脚本类型,web-HTTP,HTML->创建 2.录制脚本 3.停止脚本录制 4.创建controlle ...