@nirvimel

На базе чего лучше создать HTTP-прокси, передающий на обработку скрипту/плагину тела ответов сервера image/*, и быстро пропускающий остальной трафик?

Стоит задача захвата всех изображений с image/* в Content-Type, обработки их определенным образом с последующей подменой оригинала на обработанную версию при наибыстрейшем сквозном пропускании остального трафика. Также очень желательна возможность подключить parent proxy, на который будет форвайдится трафик.
Я мог бы написать такой велосипед (прототип) на многих из известных мне языков, не обращая внимания на производительность. Но меня интересует правильный вариант подхода к этой задаче, а не просто перечисление вариантов, типа "и на этом тоже можно как-то наколхозить". Идеально было бы использовать готовый сервер (в mature state, оптимизированный и отточенный) с возможностью прикрутить к нему свой плагин или скрипт. Но я не нашел соответствующего решения среди популярных серверов. Если писать сервер самостоятельно, то в качестве основы лучше взять какой-то mature проект в котором предусмотрена возможность расширения (перехват событий, например).
Что касается Python, на котором я сходу собирался решить задачу, то на нем, как оказывается, практически нет подходящих вариантов. Все что я нашел это:
  1. CherryProxy - CherryPy based, хорошая задумка, но брошен в 2012, есть возможности подключить parent proxy.
  2. proxy2 - основан на блокируемых потоках Threading (!), основной упор на перехват и подмену SSL, нет возможности подключить parent proxy, продолжаю изучать его пока.
  3. proxy.py - относительно популярен на githab, слишком сильно заморочен на полном отсутствии зависимостей, внутри логика тесно завязана множестве различных состояний (лично я не люблю любые аналогии со state machine, это непрозрачно и далеко от функционального подхода), никакой возможности для расширения (или monkey patch во множестве мест или серьезная переделка архитектуры), нет возможности подключить parent proxy.
  • Вопрос задан
  • 536 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Если вам действительно важна скорость, то почему-бы не взять nginx?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AlexXYZ
@AlexXYZ
O Keep Clear O
... Добавлю отдельным сообщением, вдруг кто комментарии не очень читает. Есть ещё такая штука Fiddler.core:

www.telerik.com/fiddler/fiddlercore

Там можно делать скриптование на JavaScript с помощью .net. Но только у него не совсем бесплатная лицензия: www.telerik.com/purchase/fiddlercore
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы