У меня возникла проблема с 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 Config.