加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – nginx:当使用nginx作为反向代理时,是否可以在访问日志

发布时间:2020-12-15 00:52:50 所属栏目:Java 来源:网络整理
导读:我们使用nginx作为反向代理来控制和记录对Clojure( Java)Web服务应用程序的访问. 我们能够使用nginx生成access_log并捕获传入的头文件.我们的Clojure应用程序通过log4j记录活动.麻烦的是,我们无法将access_log中的条目与应用程序生成的条目相匹配. 该应用程
我们使用nginx作为反向代理来控制和记录对Clojure( Java)Web服务应用程序的访问.

我们能够使用nginx生成access_log并捕获传入的头文件.我们的Clojure应用程序通过log4j记录活动.麻烦的是,我们无法将access_log中的条目与应用程序生成的条目相匹配.

该应用程序通过发送响应标头和正文来响应访问.我们可以自由更改这些响应标头.我最初的想法是生成一个UUID,它对应于每个Web服务请求,并在回复标题X-Uuid中将其发送回用户.我的想法是我可以通过创建自定义log_format来捕获此响应:

log_format lt-custom '$remote_addr - $remote_user [$time_local]  '
                     '"$request" $status $body_bytes_sent '
                     '"$http_referer" "$http_user_agent" $request_time $http_x_uuid';

它看起来像nginx可以捕获传入请求中的标头而不是传出回复(我通过用$http_content_type替换$http_x_uuid来验证这一点).

所以!有没有办法通过使用nginx捕获传出回复标题来绑定我的access_log enties和我的log4j条目?有没有更好的办法?我宁愿不必依赖用户生成自己的UUID.

非常感谢!

解决方法

$http_x_uuid是客户端发送的标头.
上游发送的响应头是$upstream_http_x_uuid

http://wiki.nginx.org/HttpUpstreamModule#.24upstream_http_.24HEADER

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读