nginx的post命令记录body到日志中

本文详述了使用ELK搭建日志收集系统的过程,包括前端与移动端如何通过HTTP请求发送日志,Nginx作为高性能后端服务器的配置与优化,以及解决中文转义字符和POST数据长度限制的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近打算使用ELK搭建日志收集系统,前端移动端通过http请求发送日志请求到后端,后端记录日志到日志文件中,filebeat读取日志文件,推送到logstash,因为没有任何业务代码,后端的http服务器使用性能较高的nginx(springboot与netty测试结果另外在其他文章中讨论),nginx的post请求写日志费了一番周折,这里记录一下,以免后续忘记;

1、下载nginx源码:

nginx-1.12.2.tar.gz
LuaJIT-2.0.5.tar.gz
v0.10.9rc7.tar.gz

2、修改源码

因为默认nginx不支持post请求中的body写日志,所以需要通过修改源码的方式支持,见下面的链接:
https://blog.youkuaiyun.com/weixin_34115824/article/details/92984867

3、编译

编译后出现编译出错,替换v0.10.9rc7.tar.gz解决,之前用了低版本的包导致的;

4、运行时出错,用这篇文章的方法解决

https://my.oschina.net/ranhai/blog/1797454

5、中文转义字符的解决:

解决nginx访问日志记录post数据

注意:日志需要在模块中重新定义才能正常输出post的请求;

6、post命令数据的长度限制:

因为是用在日志服务器中,前端需要定时积累日志数据并采用定时发送,在发送非常大的数据的时候发现log日志中的记录为空,查了资料发现默认post请求的最大长度不够(content-lenth大概12k左右就不写日志了),修改参数 “client_body_buffer_size”
参考文章:https://blog.51cto.com/fuyuan2016/1853410

最后:

整个过程参考:https://blog.youkuaiyun.com/weixin_37519367/article/details/73498756

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值