Apache ProxyPass для обслуживания в кластере Kubernetes
У меня проблема с ProxyPass для службы, которая находится в кластере Kubernetes (также за прокси-сервером, чувствительным к доменному имени).
Это моя конфигурация:
<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 обычно необходимо сопоставить с аналогичной директивой proxypassreverse в конфигурации Apache.