Kubernetes クラスターのサービスへの Apache ProxyPass

Kubernetes クラスターのサービスへの Apache ProxyPass

Kubernetes クラスター (ドメイン名に敏感なプロキシの背後) に配置されているサービスへの ProxyPass に問題があります。

これが私の設定です:

<LocationMatch "/service2">
    ProxyPass http://service2.mycluster.org Keepalive=On
</LocationMatch>

このサービスを呼び出すと、503 が返されます。

スタンドアロン サーバー アプリでも同様の構成が機能します。

<LocationMatch "/service1">
    ProxyPass http://myserver.org:8012 Keepalive=On
</LocationMatch>

今頭に浮かぶのは、Apache がドメイン名ではなく、解決された IP にリクエストを送信しているということだけです。

IP を使用したスタンドアロン サーバーへのリクエストは機能するため:

curl -f http://<myserverip>:8012

クラスタは失敗する

curl -f http://<myclusterip>

ドメイン名 (service2.mycluster.org) が内部ディスパッチに使用されているためです。

ここで何か明らかなことを見逃しているのでしょうか? ドキュメントにヒントが見つからないので、ProxyPass はそのまま動作するはずだと思っていました。

答え1

ProxyPassReverse ディレクティブが欠落しているように見えます。通常、各 proxypass ディレクティブは、Apache Config 内の同様の proxypassreverse ディレクティブと組み合わせる必要があります。

関連情報