有没有办法删除apaches反向代理请求标头?

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取消它们.我可以添加更多条目,但我无法删除它们

有任何想法吗?

The*_*can 2

更正的答案:没有办法做到这一点,因为它是硬编码的

要修复此问题,请在 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