首页 > 系统相关 >Nginx Lua修改返回值

Nginx Lua修改返回值

时间:2023-10-20 21:33:41浏览次数:35  
标签:header lua filter Nginx nginx Lua 返回值 ngx

调试lua脚本
ngx.log(ngx.ERR, "xxx")
日志会打印到/usr/local/nginx/logs/error.log

修改返回值时避免内容被截断

增加header_filter_by_lua 'ngx.header.content_length = nil';
注释后只返回原接口长度3,即ok\n。

lua脚本默认必须放在/usr/local/nginx目录下,否则会找不到。

modify_response脚本被触发3次。被调用多次的原因是,上游响应数据可能以HTTP 1.1 chunked方式传输。字符串类型值ngx.arg[1]表示上游响应数据,布尔类型值ngx.arg[2]表示是否已到达响应数据流的结尾。

gdb调试
b src/http/modules/ngx_http_chunked_filter_module.c:74
c
通过curl来发起请求
nginx.conf中加上header_filter_by_lua 'ngx.header.content_length = nil';

nginx.conf中不加header_filter_by_lua 'ngx.header.content_length = nil';
这里的3对应了后端服务返回值ok\n的长度

参考资料

https://github.com/openresty/lua-nginx-module#body_filter_by_lua_file

标签:header,lua,filter,Nginx,nginx,Lua,返回值,ngx
From: https://www.cnblogs.com/WJQ2017/p/17778028.html

相关文章

  • SpringMVC自定义处理返回值demo和异步处理模式DeferredResult demo
    搭建自定义返回值处理器demo新建springboot项目修改pom.xml<!--新增依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><gro......
  • nginx首次安装sticky模块-cookie保持会话
    首次安装nginx:(下一篇文章是nginx添加sticky模块)yuminstall-ypcre*openssl*gccgcc-c++make--安装编译环境wgethttps://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/08a395c66e42.zip--下载sticky模块nginx-v--查看Nginx版本,因为要下载和yum安装nginx......
  • nginx添加sticky模块-cookie保持会话
    环境nginx1.8.0 centos6.X sticky:1.2.5 wgethttps://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gzcookie负载均衡相比iphash来比其中一个特点比较明显:内网nat用户的均衡。而iphash无法做到。yuminstallopenssl openssl-devel先停止ngi......
  • ansible使用【2】--安装Nginx并熟悉playbook
    前提:主控机器已经安装好ansible,被控制的是53.225安装教程看:https://www.cnblogs.com/liqi175/p/17776530.html参考资料:https://ansible.leops.cn/basic/Quickstart/安装Nginx:ansible192.168.53.225-mapt-a'name=nginx' 说明:-m指定模块,我这里指定apt安装模块......
  • kkfile4.0 nginx映射踩坑
    官网文档要修改base.url和service.context-path,但是修改后不起作用! 后花了大半天翻阅文档后才发现4.0并没有service.context-path,要修改server.servlet.context-path!!!!!(base.url同样要修改)  修改后  原帖:https://juejin.cn/post/7032191684440293390......
  • ES 结合nginx 实现自定义词库
    dockerrun-p80:80--namenginx-dnginx:1.10将容器内的配置文件拷贝到当前目录:dockercontainercpnginx:/etc/nginx.修改文件名称:mvnginxconf把这个conf移动到/mydata/nginx下执行命令删除原容器:dockerrmnginx创建新的nginx;执行以下命令dockerrun-......
  • nginx生成自签名证书
    创建服务器证书秘钥文件[root@Nginx~]#opensslgenrsa-des3-outserver.key1024...Enterpassphraseforserver.key: #输入密码Verifying-Enterpassphraseforserver.key: #确认密码创建服务器证书申请文件[root@Nginx~]#opensslreq-new-key......
  • Go 函数多返回值错误处理与error 类型介绍
    Go函数多返回值错误处理与error类型介绍目录Go函数多返回值错误处理与error类型介绍一、error类型与错误值构造1.1Error接口介绍1.2构造错误值的方法1.2.1使用errors包1.2.2自定义错误类型二、error类型的好处2.1第一点:统一了错误类型2.2第二点:错误是值2.3第三点:易......
  • 一键部署反向代理神器 nginx proxy manager
    环境准备:安装完毕docker-compose[root@masternginx]#catdocker-compose.ymlversion:'3'services:app:image:'jc21/nginx-proxy-manager:latest'restart:unless-stoppedports:#这里意思是将容器内的8081443映射为主机的331332333-......
  • Nginx 服务器 SSL 证书安装部署
    工具:WinSCP、putty下载证书cloud.tencent.com_bundle.crt证书文件cloud.tencent.com_bundle.pem证书文件cloud.tencent.com.key私钥文件cloud.tencent.com.csrCSR文件上传证书到服务器通过WinSCP将已获取到的cloud.tencent.com_bundle.crt或cloud.tencent.com_......