Pull to refresh

Comments 17

Посмотрите в сторону Golang, он умеет в многопоточность, может и nginx не понадобится с пыхой
Для саморазвития проделана очень неплохая работа. Но для использования рекомендую готовые решения, к примеру — SQUID.
можно просто прописать AdGuard dns. Это удобно, до тех пор пока не нужно получать dns сервера по dhcp в корпоративной сети.
Спасибо за наводку, не знал об этом сервисе! Но что-то он плохо работает, на главной странице speedtest.net все баннеры на месте.
UFO just landed and posted this here
Не то чтобы хуже, но обратите внимание, что в обоих случаях отсутствует поддержка HTTP2.

Мне иногда хочется прозрачный кэширующий прокси с поддержкой HTTP2 и с возможностью направлять трафик дальше через SOCKS-прокси. Пока не нашёлся с решением.

Если кратко, то ответ есть в первом абзаце поста. А именно, хотелось чтобы код в любой момент можно было доработать под конкретную задачу, потратив на какую-то мелочь соответствующее (маленькое) время и ни на кого не оглядываясь.


Подробнее:
Насчёт squid — у него основное предназначение другое. Активное вмешательство в трафик там если где-то и есть, то второстепенным функционалом.
А ещё он написан на C++, который я хоть и знаю, но не люблю, и исходники у него весят слишком много, чтобы держать их в голове постоянно, что в итоге плохо сказывается на возможности его быстрой доработки.


Про существование privoxy я до вашего комментария вообще не знал. Да, это что-то близкое по целям к моему прокси, но судя по его FAQ он для выполнения нужных задач (да и вообще в современном вебе, где везде https) работоспособен только в связке со squid. Получаются уже две независимые проги вместо одной, мне это не нравится (всмысле что их делают разные люди, не особо координируясь друг с другом, разные конфиги итд). И у него тоже слишком много исходников.

В mitmproxy можно подключать скрипты которые могут полностью перехватывать обработку запросов и ответов. Поддержка HTTP2 из коробки. Можно делать интересные штуки, но довольно сильно кушает CPU.

CPU можно немного освободить, если выключить интерфейс и уменьшить опции логирования

Еще когда интернет по талонам был — MyProxy ставил. И рекламу (частично) резал, и картинки кэшировал :)
Здорово. Почему не на GitHub/GitLab? Требуется доводить проект до состояния более понятного для конечного пользователя или заинтересованного участника.

Ну, не то что бы требуется, но до состояния "скачать, распаковать и в пару команд запустить" я его всё-таки довёл ради публикации — иначе это было бы неуважением к потенциальным пользователям.
А указанные сервисы не люблю (не люблю ни сам git, ни идею централизованных хостингов, ни Microsoft который владеет GitHub'ом).

Выложил небольшое обновление (ссылки обновлены). Кроме чисто технических правок, что изменилось:
1) исправлен баг при парсинге некорректного http-заголовка без двоеточия (при поиске двоеточия не учитывался завершающий нулевой байт строки заголовка, и двоеточие могло "найтись" в мусоре после конца строки, который был бы посчитан частью заголовка) как в запросе от браузера, так и в ответе от сайта, мог привести к segfault или (при очень "удачном" стечении обстоятельств) к утечке в браузер (а из него через js — на злонамеренный сервер) случайных областей памяти процесса прокси, содержащих данные прошлых проксированных запросов; или злонамеренный клиент мог попытаться отправить на "нужный" сервер обрывки длинных заголовков предыдущего запроса, прошедшего через тот же прокси-процесс;
2) ютуб перестал слушаться опцию &disable_polymer=true, теперь для той же цели используется фейковый юзер-агент;
3) оказывается в сертификатах бывают доменные имена не в нижнем регистре (пример: Techlibrary.hpe.com), теперь домен сравнивается без учёта регистра;

Sign up to leave a comment.

Articles