根据另一个请求标头的值在 mod_proxy 上添加一个请求标头

根据另一个请求标头的值在 mod_proxy 上添加一个请求标头

我有一台运行 mod_proxy 的服务器,我需要重命名请求标头。靠近源的代理正在剥离 X-Forwarded-For 标头,但我们需要保留该数据,因此我想将该值添加到不同的标头以允许源获取它。

从我对文档的阅读来看,没有办法重命名标题,而且我看不到如何将值传递到 RequestHeader 中添加 mod_headers。

答案1

RequestHeader可以将环境变量的值插入到标头值中,并且SetEnvIf可以根据请求标头值设置环境变量,因此以下配置应该可以实现您所需要的:

SetEnvIf X-Forwarded-For (.*) saved_x_forwarded_for=$1
RequestHeader set X-Custom-Forwarded-For "%{saved_x_forwarded_for}e"

您应该使用set而不是add,这样即使客户端发送包含自定义标头的请求,客户端指定的值也将被覆盖(尽管这也不是 100% 可靠的,因为标头也可能被欺骗)。还要测试如果收到X-Forwarded-For没有的请求会发生什么。X-Forwarded-For

相关内容