Мне нужно иметь возможность сделать GET-запрос к внутреннему Apache серверу, работающему в качестве хоста ProxyPass для доступа к группе конечных точек API, но использовать собственный HTTP-заголовок в запросе GET, чтобы указать, какой поддомен получает запрос прокси в.
По сути, существует несколько сотен поддоменов, и невозможно выполнить перезапись URL-адреса в коде до выполнения запроса. Что можно сделать, так это добавление пользовательских заголовков HTTP к запросам. Так, например, для тестирования я хочу, чтобы это прокси на https://testsub1.api-us1.com/api/3/campaigns. Итак, с моего внутреннего хоста тестирования я скручиваю следующее:
curl -H "subdomain: testsub1" http://1.2.3.4/actcampaign2/
На стороне хоста ProxyPass это работает в соответствующем VirtualHost (в 1.2.3.4):
RequestHeader set subdomain %{subdomain}e
ProxyPass /actcampaign2 https://%{subdomain}e.api-us1.com/api/3/campaigns
ProxyPassReverse /actcampaign2 https://%{subdomain}e.api-us1.com/api/3/campaigns
Но когда я прихожу к этому, я просто получаю ответ от нашего вышестоящего прокси-сервера (squid, в другом месте сети, что не важно), что он не смог выполнить поиск DNS для "% {subdomain} e.api-us1.com".
Таким образом, очевидно, что заголовок не раскрывается и не интерпретируется строкой ProxyPass / ProxyPassReverse. Я прочитал о mod_headers и из того, что я вижу, должно работать выше, но оно даже не пытается.
Ожидаемый результат будет для Apache, чтобы развернуть заголовок в строку, чтобы он стал "https://testsub1.api-us1.com/api/3/campaigns "и продолжить работу с прокси-сервером в обычном режиме (это работает, если я, конечно, вручную перехожу на этот URL)