【发布时间】:2011-11-10 20:25:04
【问题描述】:
当充当反向代理时,apache 添加 x-forwarded 标头,如此处所述。
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#x-headers
在我的配置中,我将服务器 A 配置为转发代理。有这样一条规则:
RewriteRule proxy:(.*example.com)/(.*) $1.mysecondserver.com/$2 [P]
此规则允许服务器从我的其他服务器之一请求资源。
在第二台服务器(源)上,我有一个用于资源的虚拟主机容器和另一个这样的重写规则:
RewriteRule some-regex some-url [P]
这似乎没有意义,但还有很多其他的事情我忽略了,因为这不是问题的一部分。
但是,最终请求具有以下标头:
[X-Forwarded-For] => ip of 1st server
[X-Forwarded-Host] => example.myseconserver.com
[X-Forwarded-Server] => example.com
我希望那些标题消失。
我似乎无法使用 mod_headers 取消设置它们。我可以向它们添加更多条目,但我不能删除它们。
有什么想法吗?
【问题讨论】:
-
我知道的唯一方法是来自 mod_headers 的 RequestHeader:用于删除这些标题,例如
RequestHeader unset X-Forwarded-For。该指令具有较低的优先级,并在请求由其处理程序在修复阶段运行之前运行 after mod_rewrite。我不确定X-Forwarded-*标头,但它适用于用户代理和类似标头 - 删除它们没有问题 -
这正是我尝试过的,但这些标题似乎无法以这种方式编辑
标签: apache mod-rewrite apache2 mod-proxy mod-headers