Задать вопрос
  • Как сделать прокси который будет работать только на одном сайте?

    Vindicar
    @Vindicar
    RTFM!
    Во-первых, нужно чётко описать цепочку трафика. Вот первый вариант:
    [клиент] --> [решающий прокси] --> [реальный прокси] --> [целевой сайт]
                         \--> [другие сайты]

    Т.е. клиент всегда ходит через решающий прокси (тот, который принимает решение, как обращаться к сайту), а далее трафик идёт по одной из двух веток.
    Плюсы: у клиента фиксированная конфигурация, требуется только поддержка прокси, не требуется доп. ПО на кленте
    Минусы: решающий прокси тащит на себе весь трафик клиента.

    Если это недопустимо, т.е. тебе позарез нужно что-то такое:
    [клиент] --> [решающий прокси] --> [реальный прокси] --> [целевой сайт]
        \--> [другие сайты]

    То решение нужно принимать на стороне клиента. Тут есть два варианта.
    Вариант А: решающий прокси разворачивается на клиенте. Так работает nekoray, например.
    [клиент --> решающий прокси] --> [реальный прокси] --> [целевой сайт]
                         \--> [другие сайты]

    Плюсы: ПО на клиенте всё ещё требует только поддержку прокси, и всё.
    Минусы: на клиенте ставится доп. ПО, управление производится на машине клиента (неудобно если их несколько)

    Вариант Б, которым я сам пользуюсь: использовать PAC-файл. Он выполняется в контексте браузера и содержит логику на JS, которая определяет, как посылать каждый запрос. Разумеется, генератор и прокси могут быть на одном узле.
    [Генератор и хостинг для PAC-файла]
       ^
       |
    [клиентский браузер] --> [реальный прокси] --> [целевой сайт]
        \--> [другие сайты]

    Плюсы: на клиенте фиксированная конфигурация и нет доп. ПО. Все решения принимаются сервером, который периодиченки обновляет PAC-файл.
    Минусы: работает ТОЛЬКО с браузером, если прокси недоступен, браузер может начать пытаться слать запросы напрямую. Трудно повлиять на то, как часто клиент будет перезагружать PAC-файл.

    Вариант В: использовать маршрутизацию совместно VPN, чтобы завернуть все пакеты на целевые хосты в VPN, и только их.
    Плюсы: работает с любым ПО, даже если оно не умеет прокси.
    Минусы: Требует полноценный VPN с виртуальным сетевым адаптером, а не прокси. Определить подсети по имени сайта нетривиально, ибо CDN могут менять адреса без предупреждения. Раздавать 100500 маршрутов на клиенты тоже нетривиально.
    Ответ написан
    Комментировать