15

リバースプロキシとして機能する場合、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]

このルールにより、サーバーは他のサーバーの1つからリソースを要求できます。

2番目のサーバー(オリジン)には、リソース用の仮想ホストコンテナーと、次のような別の書き換えルールがあります。

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で設定を解除できないようです。それらにエントリを追加することはできますが、削除することはできません。

何か案は?

4

3 に答える 3

2

正解:ハードコーディングされているため、それを行う方法はありません

mod_proxy_http.c のソース コードでこれを修正するには、次の部分を検索します。

    apr_table_mergen(r->headers_in, "X-Forwarded-Server",
                 r->server->server_hostname);
}

その直後に次のコードを追加します。

// 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");

次に、実行してコンパイルしますapxs2 -cia mod_proxy_http.c

于 2012-04-08T23:18:24.890 に答える