为提高web应用的吞吐量,我们一般都用nginx做负载均衡器,再反向代理到真正的web服务器。像JAVA服务可以做成Nginx+Tomcat, PHP用Nginx+Spawn-fcgi, 当然nodejs服务,我们也可以做相同的架构Ngnix+Node。
我使用nginx+nodejs+log4js时,发现log4js日志的remote_addr项,总是显示127.0.0.1。本文将重点解释如何通过修改log4js的代码,解决这个问题。
我已经提交这个问题到log4js-node的issue https://github.com/nomiddlename/log4js-node/issues/139
文章目录:
配置nginx反向代理 log4js做为web日志输出 log4js日志ip显示错误及修复
Nginx 反向代理配置,设置header的时候是不是没有指定$remote_addr
指定了。估计是log4js框架,还没有考虑到的feature。
自己改一下就OK了。
log4js 在 connect 中使用时, 提供了对外的扩展.
可以自己指定 format 函数. 即 option.format 指向 function.
如果 format 是 function(而不是 string )时, log4js 会使用自定义的 function 生成 string 来记录.
多谢指点,我去试一下。