Передача прокси на внешний сервер (NGINX в Azure Traffic Manager) - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь настроить прокси-сервер MITM для внедрения JS-скриптов во время транзита с использованием NGINX перед веб-приложением, расположенным за менеджером трафика Azure. Мне нужна помощь в правильной настройке (пример того, чего я пытаюсь достичь, приведен ниже).

Client
  |
  |
  |
NGINX (Inject Javascript)
  |
  |
  |
Azure Traffic Manager
  |
  |
  |
Web App

Здесь нет никакого хитрого дела, мне просто нужно манипулировать функцией в веб-приложении, к которой у меня нет внутреннего доступа, передача скрипта JS позволит мне сделать это.

Я пробовал кодовый блок, указанный ниже, с C Name , указывающим на сервер NGINX. Обычно Traffic Manager требует, чтобы C Name указывало на него для правильного разрешения. Теперь, когда у меня есть конфигурация NGINX, я могу связаться с менеджером трафика, однако он разрешается с помощью веб-сайта 404, который не найден .

Это фрагмент моего default файла в site-confs

...

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        server_name mysubdomain.domain.com.au;

        include /config/nginx/proxy-confs/*.subfolder.conf;
        include /config/nginx/ssl.conf;

        location / {
                sub_filter </head>
                        '</head><script language="javascript" src="link.tomydomain.com/custom-script.js"></script>';
                sub_filter_once on;
                resolver 8.8.8.8;
                proxy_pass http://azure.trafficmanager.net;
                proxy_set_header Host $proxy_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Destination http://gluh.trafficmanager.net;
        }
}

...

Глядя на мой файл access.log, я вижу следующее записанное в журнал.

...
121.xxx.xx.xxx - - [13/Jun/2019:21:11:57 +1000] "GET / HTTP/2.0" 404 1161 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
121.xxx.xx.xxx - - [13/Jun/2019:21:11:57 +1000] "GET /link.tomydomain.com/custom-script.js HTTP/2.0" 499 0 "https://mysubdomain.domain.com.au/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
...

Мой ожидаемый результат заключается в том, что трафик HTTP / HTTPS прозрачно проходит через прокси с тегами сценария, прикрепленными к <head> ... </head> документа. Чего мне здесь не хватает, требует ли Azure Traffic Manager конкретной информации для правильной маршрутизации?

1 Ответ

0 голосов
/ 13 июня 2019

Так что я закончил разбираться с этим, отбирая заголовки, см. Ниже для справки. Я также переключил $ proxy_host на $ host, который необходим Azure Manager для маршрутизации.

«»» место нахождения / { sub_filter ''; sub_filter_once on; резольвер 8.8.8.8; proxy_pass http://azure.trafficmanager.net; proxy_set_header Host $ host; } «»»

...