发现 nginx 、tomcat 等 WebServer 的一个重大缺陷

2023-07-27 21:58:54 +08:00
 documentzhangx66
当 request 到达 nginx 、tomcat 时,它们没有进行 log ,只有当 request 处理完毕后,才会产生一条日志,记录到 访问日志里。

因此,如果处理过程非常久,只要没处理完毕,就没有日志,导致很难快速判断问题。
1390 次点击
所在节点    问与答
5 条回复
securityCoding
2023-07-27 22:00:51 +08:00
这个跟 ng 有啥关系
documentzhangx66
2023-07-27 23:16:52 +08:00
@securityCoding

说明 nginx 在设计时,没认真考虑这个问题。

根据事件发生时机,一个处理过程,其实会有很多种状态,比如:

准备,开始,过程中,超时,错误,完成。一共 6 种状态。

而 nginx 只有 access 与 error 2 种状态。
vibbow
2023-07-28 00:00:18 +08:00
你需要的是 debug log ,而不是 access log
wdlth
2023-07-28 00:06:05 +08:00
编译 nginx 时加上--with-debug ,再把 error_log 的级别设置成 debug 就有 debug 级别的日志了。
wangkun025
2023-07-28 00:27:48 +08:00
帮你问了 chatGPT ,说确实没自带这个功能,可以通过第三方模块实现,比如 ngx_http_echo_module

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/960357

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX