The*_*can 13 apache mod-rewrite apache2 mod-proxy mod-headers
当充当反向代理时,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]
Run Code Online (Sandbox Code Playgroud)
此规则允许服务器从我的其他服务器请求资源.
在第二个服务器(原始)上,我有一个资源的虚拟主机容器和另一个重写规则,如下所示:
RewriteRule some-regex some-url [P]
Run Code Online (Sandbox Code Playgroud)
它似乎没有这样的意义,但是我遗漏了许多其他的东西,因为它不是问题的一部分.
但是,最终请求具有以下标头:
[X-Forwarded-For] => ip of 1st server
[X-Forwarded-Host] => example.myseconserver.com
[X-Forwarded-Server] => example.com
Run Code Online (Sandbox Code Playgroud)
我想要那些标题消失了.
我似乎无法用mod_headers取消它们.我可以添加更多条目,但我无法删除它们
有任何想法吗?
更正的答案:没有办法做到这一点,因为它是硬编码的
要修复此问题,请在 mod_proxy_http.c 的源代码中搜索以下部分:
apr_table_mergen(r->headers_in, "X-Forwarded-Server",
r->server->server_hostname);
}
Run Code Online (Sandbox Code Playgroud)
然后立即添加以下代码:
// remove any X-Forwarded headers
apr_table_unset(r->headers_in, "X-Forwarded-For");
apr_table_unset(r->headers_in, "X-Forwarded-Host");
apr_table_unset(r->headers_in, "X-Forwarded-Server");
Run Code Online (Sandbox Code Playgroud)
然后通过运行进行编译apxs2 -cia mod_proxy_http.c
归档时间: |
|
查看次数: |
12404 次 |
最近记录: |