Перенаправить запрос на другой URL - PullRequest
0 голосов
/ 28 октября 2019

Необходимо перенаправить запрос удаленного URL на локальный URL. У меня нет контроля над тем, как этот запрос будет вызываться так же, как он вызывается из веб-приложения. Пробовал разные инструменты, такие как Wiremock, mockserver, Traefik, но, похоже, ничего не работает. Эти инструменты работают как прямой прокси, но мой сценарий нуждается в обратном прокси.

Сценарий

удаленный URL (http://remoteurl) -> локальный URL (http://localhost:8080)

Общие сведения: веб-приложение вместе со сценарием тестирования развертывается через docker. Существуют отдельные контейнеры для веб-приложения и сценария тестирования. Внутренняя сеть работает отлично, и сценарий может работать в среде Docker. Для некоторых контейнеров открыты одни и те же порты, и поэтому мы используем доменное имя для связи в среде докера. Мое требование - запуск на локальном компьютере для отладки сценария и устранения некоторых проблем, поскольку я продолжаю сеанс просмотра без головы вдокер.

1 Ответ

0 голосов
/ 28 октября 2019

Добавьте новый контейнер в вашу докерскую сеть, nginx, открывая порт 8888.

Этот nginx должен иметь следующую конфигурацию:

server {
    server_name proxy;
    listen 8888;

    location / {
        proxy_pass http://webapp:8080;
        proxy_set_header   Host $http_host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    }

Теперь вы можете атаковать из своего тестасценария на http://localhost:8888, и он будет перенаправлять трафик в веб-приложение.

Предполагается, что вы не можете просто открыть порт веб-приложения для localhost. Если вы можете выставить его, вам просто нужно атаковать http://localhost:8080 и забыть об обратном прокси.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...