2026年9月6日
2026年9月6日
Apacheでオリジンのリクエストヘッダーを転送する方法
はじめに
Apacheを用いたWebサイト運営において、リバースプロキシとしての役割は重要な機能の一つです。オリジンサーバーから送られてくるリクエストヘッダーを正しく転送することで、アプリケーションやセキュリティ設定などの正しく動作することが求められます。本記事では、Apacheを使用してオリジンのリクエストヘッダーを転送する方法について解説します。
症状・背景
このテーマが必要になる主な場面は以下の通りです:
- リバースプロキシとして機能させたい場合
- クライアントからのリクエストにオリジンの情報が含まれているが、そのヘッダーを後続のサーバーに正しく転送していない場合
手順・設定方法
ステップ1: mod_headersモジュールの有効化
# mod_headersモジュールがインストールされていることを確認
sudo a2enmod headers
# 仮想ホストファイルを開く
sudo nano /etc/apache2/sites-available/000-default.conf
ステップ2: リクエストヘッダーの転送設定
# RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s env=REMOTE_ADDR
# RequestHeader set X-Forwarded-Proto $scheme
# RequestHeader set X-Forwarded-Port %{SERVER_PORT}s env=SERVER_PORT
ステップ3: 転送ヘッダーの確認
# 仮想ホストファイルを保存して、Apacheを再起動する
sudo systemctl restart apache2
ステップ4: 実践/トラブルシュート/監視
# クライアントからのリクエストヘッダーを確認
curl -v http://yourdomain.com | grep X-Forwarded-
注意事項
- セキュリティ上の注意:X-Forwarded-Forはプライバシーの問題が伴う可能性があるため、適切に管理すること。
- パフォーマンス/運用上の注意:ヘッダーを大量に転送するとパフォーマンスに影響を与える可能性がある。
まとめ
1. mod_headersモジュールの有効化:正しく動作するためには必須です。
2. RequestHeader設定:必要なヘッダーを設定します。
3. Apache再起動:設定変更後は Apache を再起動して適用します。
4. 確認:クライアントからのリクエストで転送されたヘッダーが正しく反映されているか確認します。
関連記事: