Я ищу способ просто настроить прокси-сервер локально, который подключается к удаленному сайту. Я не хочу ничего устанавливать в самой системе. Если бы я мог называть его одним вызовом командной строки, а не удаляться даже с одним файлом конфигурации, это было бы блестящим.
Цель состоит в том, чтобы обнюхать трафик между моим локальным приложением, который я разрабатываю, и удаленным сервером, который кто-то еще предоставляет, и который использует HTTPS.
Предпочтительно это будет пакет Ruby, Python или Node, так что я мог бы просто что-то сделать в строках:
mkdir simplest-proxy; cd simplest-proxy; bundle init
echo "gem 'simplest-proxy'" >> Gemfile; bundle --path vendor/bundle
bundle exec bin/simplest-proxy -p 8080 https://remote.site.example.com/
или
virtualenv simplest-proxy; cd simplest-proxy
bin/easy_install simplest-proxy
bin/simplest-proxy -p 8080 https://remote.site.example.com/
или
mkdir simplest-proxy; cd simplest-proxy
npm install simplest-proxy
node_modules/.bin/simplest-proxy -p 8080 https://remote.site.example.com/
Это позволит моему приложению подключиться к localhost:8080
, который перенаправляет запрос (и переписывает заголовок Host
и все, что необходимо) на удаленный сайт. Я мог бы смотреть lo
в WireShark и узнать, что происходит.
Я быстро просмотрел pypi, rubygems и npm, но то, что я нашел до сих пор, либо не работает (proxylet
, что в противном случае выглядело очень многообещающим), предназначалось для гораздо более сложного сценария и требует установки (dj-revproxy
) или ожидая, что он будет вызываться с правильным Host
(node-reverse-proxy
), а не переписывать.
UPDATE: теперь я собираюсь с Apache с конфигурацией ProxyPass
/ProxyPassReverse
, но он чувствует себя массово перегруженным и требует игры с конфигурационными файлами.
UPDATE: другое решение, которое не применимо, является фактическим прокси-сервером HTTP, а не эмуляцией удаленного сайта. Поскольку удаленный сайт является HTTPS-сайтом, это просто сделает мое приложение подключаемым CONNECT в прокси-сервере и ничего не получилось.