Proxy(Apache) の403 Forbidden を回避する
概要
- 今回は リバースプロキシ(Apache) + API Gateway 構成の構築で経験したエラーについて記載します。
- 以下、システム構成図です。クライアントからAPI Gateway へ直接の疎通は OK ですが、クライアントからリバースプロキシ(Apache) 経由でAPI Gateway への疎通は403 Forbidden となります。
- 以下は、リバースプロキシ(Apache)からcurl を実行した結果です。リクエストはAPI Gateway へ転送されましたが、403 Forbidden が返却されます。
- テストのため、localhost に対してcurl を行っていますが、実際は別のクライアントからリクエストを受ける想定です。
対処方法
- Apache の以下設定をコメントアウトあるいは、Off に設定します。(デフォルトは、Off です)
- ProxyPreserveHost は、ProxyPass で指定したホスト名は使用せず、受け付けたリクエストの"Host"ヘッダをプロキシ先のホストに送ります。
- API Gateway はHTTPS プロトコルでアクセスする必要がありますが、リバースプロキシ(Apache)が"Host"ヘッダを転送する場合、"Host"ヘッダが証明書と一致せず403 Forbidden のエラーに至ります。
ProxyPreserveHost On