Я пытаюсь настроить сервер Apache для тестирования. Цель состоит в том, чтобы смоделировать балансировщик нагрузки. Часть, которую мы пытаемся смоделировать, это просто принять защищенный httprequest клиента и передать его (через незащищенный http) на правильный сервер с помощью proxypass. Это все работает на 100%.
Проблема заключается в следующем: я хочу использовать этот «балансировщик нагрузки» для нескольких сред разработки. Чтобы иметь возможность тестировать приложения на стороне сервера, я хочу, чтобы proxypass использовал переменный URL для передачи, являющийся IP-адресом клиента. Это потребует использования переменной URL в правиле прокси-сервера. Я нашел переменную REMOTE_ADDR, но я не могу использовать это в правиле proxypass. Сначала я попробовал синтаксис, который веб-сайт apache сказал мне использовать, но это не сработало (получение ошибки поиска DNS для http://REMOTE_ADDR/foobar/). Я знаю, что должен что-то делать с Interpolate, но не могу понять, что именно это было бы.
Эта строка делает то, что должна, поэтому сервер отлично работает:
ProxyPass / http://localhost:81/
Это правила, которые я пробовал (используя переменную), но они не сработали.
ProxyPass / http://${REMOTE_ADDR}:81/
Ошибка: прокси [клиент 127.0.0.1]: ошибка поиска DNS для: $ {remote_addr}, возвращенного /
ProxyPass / https://%{REMOTE_ADDR}s/
Ошибка: прокси [клиент 127.0.0.1]: ошибка поиска DNS для:% {remote_addr} s, возвращенного /
ProxyPassInterpolateEnv On
...
ProxyPass / http://${REMOTE_ADDR}:81/ интерполировать
Ошибка: [клиент 127.0.0.1] ошибка парсинга URL //: 81: неверный хост / порт
У кого-нибудь есть идеи?