mod_proxy_http
Apache httpd用 HTTP Proxy
https://httpd.apache.org/docs/2.4/en/mod/mod_proxy_http.html
Apache mod_proxy_http
説明
説明: mod_proxyのHTTPサポートモジュール
状態: 拡張
モジュール識別子: proxy_http_module
ソースファイル: mod_proxy_http.c
概要
このモジュールはmod_proxyのサービスを必要とします。mod_proxyは、HTTPおよびHTTPSリクエストのプロキシ機能を提供します。mod_proxy_httpはHTTP/0.9、HTTP/1.0、HTTP/1.1をサポートしています。キャッシュ機能は提供していません。キャッシュプロキシを設定する場合は、mod_cacheモジュールの追加サービスを使用することをおすすめします。
したがって、HTTPプロキシリクエストを処理する機能を利用するには、サーバーにmod_proxyとmod_proxy_httpがインストールされている必要があります。
警告
サーバーのセキュリティが確保されるまで、プロキシを有効にしないでください。オープンプロキシサーバーは、ネットワークだけでなくインターネット全体にとっても危険です。
環境変数
mod_proxy の動作を制御する設定ディレクティブに加えて、HTTP プロトコルプロバイダを制御する環境変数がいくつかあります。以下の環境変数のうち、特定の値を指定していないものは、任意の値を設定すると有効になります。
proxy-sendextracrlf
プロキシがリクエストの末尾に追加の CR-LF 改行を送信するようにします。これは、一部のブラウザのバグに対する回避策です。
force-proxy-request-1.0
プロキシがバックエンドへのリクエストを HTTP/1.0 として送信し、HTTP/1.1 機能を無効にします。
proxy-nokeepalive
プロキシが各リクエストの後にバックエンド接続を閉じるように強制します。
proxy-chain-auth
プロキシが認証を必要とする場合、クライアントから送信されたプロキシ認証資格情報を読み取って使用します。proxy-chain-auth を使用すると、チェーン内の次のプロキシにも資格情報が転送されます。認証情報を共有するプロキシのチェーンがある場合、これは必要になることがあります。セキュリティ警告: 機密情報を転送するため、必要な場合を除き、この設定は行わないでください。
proxy-sendcl
HTTP/1.0 では、ボディを含むすべての HTTP リクエスト(POST リクエストなど)に Content-Length ヘッダーを含める必要がありました。この環境変数は、クライアントがプロキシに送信した内容に関係なく、Apache プロキシがこのヘッダーをバックエンドサーバーに送信することを強制します。これにより、HTTP/1.0 または未知のバックエンドをプロキシする場合の互換性が確保されます。ただし、プロキシによってリクエスト全体がバッファリングされる可能性があるため、大きなリクエストの場合は非常に非効率になります。
proxy-sendchunks または proxy-sendchunked
これは proxy-sendcl の反対です。リクエストボディをチャンク転送エンコーディングを使用してバックエンドに送信できるようにします。これによりリクエストを効率的にストリーミングできますが、バックエンドサーバーが HTTP/1.1 をサポートしている必要があります。
proxy-interim-response
この変数は、RFC(デフォルト)または Suppress のいずれかの値を取ります。以前のバージョンの httpd では、バックエンドから送信される HTTP 中間応答 (1xx) を抑制していました。これは技術的には HTTP プロトコル違反です。実際には、バックエンドが中間応答を送信する場合、バックエンド自身がプロトコルを予期しない方法で拡張しているか、あるいは単に壊れている可能性があります。そのため、この設定は設定可能になりました。proxy-interim-response RFC をプロトコルに完全準拠するように設定するか、proxy-interim-response Suppress を設定して中間応答を抑制してください。
proxy-initial-not-pooled
この変数を設定すると、クライアント要求がフロントエンド接続の最初の要求である場合、プールされた接続は再利用されません。これにより、「proxy: error reading status line from remote server」というエラーメッセージが表示されるのを回避できます。この競合状態は、プロキシによる接続チェック後、プロキシから送信されたデータがバックエンドに到達する前に、バックエンドサーバーがプールされた接続を閉じるというものです。この変数を設定すると、特に HTTP/1.0 クライアントではパフォーマンスが低下することに注意してください。
リクエストノート
mod_proxy_http は、LogFormat または ErrorLogFormat の %{VARNAME}n 形式を使用してログに記録するための以下のリクエストノートを作成します。
proxy-source-port
バックエンドサーバーへの接続に使用されるローカルポート。
proxy-status
バックエンドサーバーから受信した HTTP ステータス。
コメント
注意:
ここはQ&Aセクションではありません。ここに投稿されたコメントは、ドキュメントやサーバーの改善に関する提案のみを対象としており、実装済みまたは無効/トピック外と判断された場合は、モデレーターによって削除される場合があります。Apache HTTP Serverの管理方法に関する質問は、Libera.chatのIRCチャンネル(#httpd)またはメーリングリストにお送りください。