LINUX.ORG.RU

Можно ли в линукс глобально перехватывать запросы?

 , , , ,


0

1

Есть удаленный сервер: https://server.ru/

На нем есть тяжелые файлы по адресу https://server.ru/js/*

Проблема в том, что они тяжелые и грузить постоянно я не хочу.

Я могу эти тяжелые файлы собирать на своем ПК. И хочу, чтобы при переходе на сайт https://server.ru/js/* грузились с моего ПК, а все остальное с https://server.ru/

Нашел расширение для хрома https://app.requestly.io/ которое позволяет делать перенаправления запроса к https://server.ru/js/* например на http://localhost:3000/js/*

В целом работает. Но придется это для каждого браузера делать. Можно ли это как-то средствами линукса сделать (конкретно пользуюсь Manjaro (Arch Linux)).

Ответ на: комментарий от OverMind

Написал программу, специализированную как раз один в один под твою задачу + другие манипуляции перехваченным трафиком (блокировка неугодных доменов (реклманых), блокировка неугодных кук, подмена страниц итд).

Тут писал про неё https://habr.com/ru/post/493574/

Но там старая версия (в т.ч. где-то вроде баги были), сейчас уже новее есть, могу оформить в удобном виде и выложить если надо, хотя не уверен что сегодня.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

Вариант:

  • Поднять на своем ПК вебсервер, который будет часть запросов перенаправлять на https://server.ru, а часть отдавать из локальных файлов

  • добавить в /etc/hosts server.ru 127.0.0.1

  • профит?

Nervous ★★★★★
()
Ответ на: комментарий от firkax

Спасибо. Ну сейчас хоть понял, что проблема не такая уж и простая. Думал в линуксе есть файл конфига какой-нибудь (типа /etc/hosts) или утилитка небольшая для этого. Ладно буду разбираться.

OverMind
() автор топика
Ответ на: комментарий от Nervous

Надо попробовать. Мне кажется там с https будут проблемы.

OverMind
() автор топика

Нужен nginx, там это все легко делается, даже https

nikolnik ★★★
()
Ответ на: комментарий от OverMind

Ну, если тебе нужно перехватить строго один сайт и ты готов индивидуально для него всё настраивать - то и правда проще, можно запустить nginx как тут пишут с зеркалом этого сайта и перенаправить в него через /etc/hosts 127.0.0.1, а то чего нет в зеркале запрашивать тем же nginx-ом через proxy_pass с настоящего сайта.

Но обычно пожелания растут со временем, сейчас один сайт, потом второй, потом ещё десять - нафиг настраивать всё это если можно централизованно решить проблему?

Я так например скачивал тяжёлые js-движки со всяких интерактивных сайтов (без ручных действий почти - только дописывал правила принудительного кеширования в конфиг прокси) и потом мог пользоваться ими по 100кбит/с мобильному инету с разрывами, чего иначе бы никак не вышло.

firkax ★★★★★
()
Ответ на: комментарий от crutch_master

Установил, запустил сервис, пару настроек поставил из https://wiki.archlinux.org/title/Squid и заработало само на всех сайтах, без секса (я даже расстроился). Ускорение довольно заметное. Но если с нуля свежую сборку js файлов грузить все равно локальное быстрее подгружать. Пока не разобрался как настроить, чтобы грузились только локальные файлы для определенных урлов.

OverMind
() автор топика

Ты что-то делаешь не так. Если ты и есть разработчик - держи все на локалхост, синхронся и пуши изменения. Для остального кэш и так должен работает в браузере, если разрабы сайта не дебилы. Собственно как и никто не выкатывает новые версии бандлов каждый день в прод.

anonymous
()
Ответ на: комментарий от OverMind

Пока не разобрался как настроить, чтобы грузились только локальные файлы для определенных урлов.

Вооот.

crutch_master ★★★★★
()

для раздачи файлов создай отдельный поддомен типа st.server.ru и раздавай файлы через него. указывая в HTML абсолютную ссылку на файл через st.server.ru

а на локальном ПП, подними аналогичный вебсервер и в hosts запиши 127.0.0.1 st.server.ru

таким образом на твоём ПК запросы на файлы будут отправлятся на st.server.ru а он у тебя будет локальной копией и это то что тебе нужно

fMad ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.