从 java 代码访问 Apache 的 unique_id

Posted

技术标签:

【中文标题】从 java 代码访问 Apache 的 unique_id【英文标题】:Accessing Apache's unique_id from java code 【发布时间】:2013-06-23 18:44:14 【问题描述】:

我需要访问 mod_unique_id 属性才能向我的 apache 服务器发出请求。有没有办法在java代码中做到这一点,比如request.UNIQUE_ID?我已经阅读了this 并找不到任何东西,我也没有完全理解这篇文章,所以我可能遗漏了一些东西。如果有人能帮我解决这个问题,那就太好了!

【问题讨论】:

【参考方案1】:

您可以将 UNIQUE_ID 添加为请求标头

Apache 配置:

    RequestHeader set UNIQUE_ID "%UNIQUE_IDe"

然后编写一些Java代码来读取这个头文件:

    request.getHeader("UNIQUE_ID");

【讨论】:

【参考方案2】:

/etc/apache2/apache2.conf 中

<IfModule unique_id_module>
    SetEnvIf X-Requestid "^$" no_request_id
    RequestHeader set X-Requestid %UNIQUE_IDe env=no_request_id
</IfModule>
在启用模式中添加符号链接:unique_id.load -&gt; ../mods-available/unique_id.load 在shell中,执行sudo a2enmod headers 重启apache

在 Java 代码中:

import javax.servlet.http.HttpServletRequest;
String uniqueId = request.getHeader("x-requestid");

【讨论】:

请将X-Requestid 更改为X-Request-ID,以免造成混淆

以上是关于从 java 代码访问 Apache 的 unique_id的主要内容,如果未能解决你的问题,请参考以下文章

从 java 代码访问 Apache 的 unique_id

Linux Apache日志分析--命令

最常见 IP 地址 bash 脚本的 Apache 访问日志

统计Apache或Nginx访问日志里的独立IP访问数量的Shell

分析APACHE NGINX的LOG

如何使用 Apache Camel 从 Java 类访问 JMS 队列?