Как стать автором
Обновить

Трансформация и перевод на другие языки web-сайтов на лету при помощи Nginx

Время на прочтение 5 мин
Количество просмотров 9.1K
Nginx *




В моем первом посте я описал применение Apache Traffic Server в качестве кеширующего reverse-proxy. В отзывах меня спрашивали почему не nginx? Поскольку в ATS все равно не нашлось удобного способа трансформировать контент сайта, то я решил изучить возможности Nginx. Для решения задачи пришлось углубится в дебри документации, и вот что получилось…
Читать дальше →
Всего голосов 64: ↑56 и ↓8 +48
Комментарии 9

Ура персонализации Интернета или мой личный Интернет

Время на прочтение 2 мин
Количество просмотров 1.7K
Блог компании Avvea
Здравствуйте, уважаемые хабражители!

Под персонализацией Интернета мы подразумеваем — «изменение внешнего вида и функционального наполнения интернет-сайтов под конкретного посетителя этого сайта».

Мы разработали несколько интернет-сервисов, ориентированных на решение задач персонализации интернет-сайтов. Сейчас готовим к выходу на рынок эти продукты. Поэтому решили кратко рассказать о задачах, решаемых нашими продуктами. Чтобы потом заинтересовавшихся пригласить на бета-тестирование и получить ваши экспертные оценки.

Итак, посмотрим на следующие две задачи персонализации.
Читать дальше →
Всего голосов 12: ↑6 и ↓6 0
Комментарии 3

Переписывание интернет-контента

Время на прочтение 3 мин
Количество просмотров 1.5K
Блог компании Avvea
Здравствуйте, уважаемые хабражители!

Это продолжение вводной статьи о персонализации Интернета. Ниже кратко описана технология, на которой основаны реализованные компанией продукты по персонализации Интернета.

Компанией Avvea разработана технология переписывания контента динамических интернет-страниц. Такая технология не нова и известна как reverse proxy. Примерами качественных reverse proxy серверов в сфере бизнеса являются разработки компаний F5 и Juniper. Технологии разработки reverse proxy серверов каждой из этих компаний прошли более чем десятилетний путь развития и направлены на поддержку ограниченного количества сложных приложений корпоративных клиентов.

Примером reversy-proxy любительского уровня можно считать свободно распространяемую разработку Glype. Таких серверов достаточно много, среди них наиболее популярны так называемые анонимайзеры.

Рассмотрим некоторые технические особенности. Главная задача reverse proxy сервера — создание виртуальной прослойки между интерфейсом браузера и клиентским программным кодом. И чем лучше эта задача решена, тем лучше итоговый reverse proxy сервер.
Читать дальше →
Всего голосов 5: ↑1 и ↓4 -3
Комментарии 4

Проксируем Cookies на Nginx при помощи модуля lua-nginx

Время на прочтение 4 мин
Количество просмотров 29K
Nginx *


Я уже писал о том, как с помощью Nginx трансформировать контент на лету. С момента публикации статьи на базе описанного метода запущен и развивается реальный проект ecommerce. Помимо перевода и трансформации также реализован и SEO рерайт по заветам руководства для начинающих от Google.

Однако, до полной победы изделия русских программистов над заграничным контентом, не хватало одной небольшой, но очень важной вещи — проксирования Cookies.

В чем суть проблемы


Проблема заключается в том, что любой нормальный сервер приложений всегда выставляет Cookie, например для того, чтобы сохранять сессию клиента или корзину с его товаром. Если этот сервер (точнее его администратор) озабочен поддержанием определенного уровня безопасности, то он выставляет в теле Cookie домен и путь, например domain= backend.org; path=/path1. Наш Nginx запущенный в режиме Reverse Proxy замечательно меняет все ссылки в теле документов с backend.org на frontend.org, но не делает этого для кук! Это означает что браузер клиента отвергнет такие куки.

Этот вопрос с давних пор волнует умы администраторов nginx, в рассылках он всплывает по 1-2 раза в год. Большинство вопрошавших, по-видимому, решили свои проблемы подкручивая логику backendа, но не я! После очередного апдейта оригинального сайта стало понятно, что костыль с PHP + Curl тянуть больше невозможно и надо непременно найти решение с помощью Nginx!

Я вернул тему в рассылку, попутно перебирая варианты из ngx_http_perl_module и переменной $upstream_http_set_cookie, даже заглянул в дебри сорсов с призрачной надеждой написать модуль самому. Но все было неудачно пока в один прекрасный момент я не получил письмо от Mikhail Mazursky, который дал ценный совет. Благодаря этому совету я не только с легкостью решил задачу проксирования Cookie, но и получил новый инструмент, с помощью которого можно создать версию 2.0 своего проекта.

Решение


Название этого инструмента lua-nginx-module, который написан еще одним китайским самородком с корнями из Taobao. Из названия легко понять, что речь об языке скриптов Lua встроенном в Nginx — но это больше чем просто интерпретатор! Эти ребята создали полностью неблокируемую реализацию с производительностью десятки тысяч операций в секунду, которая имеет хуки ко всем событиям внутри Nginx. То что раньше можно было реализовать только написав свой модуль на C, теперь можно сделать несколькими строчками на Lua. Заинтересовались?
Тогда добро пожаловать под кат!
Всего голосов 64: ↑63 и ↓1 +62
Комментарии 18

Проксируем и спасаем

Время на прочтение 7 мин
Количество просмотров 149K
Nginx *
Туториал
1 ноября мир изменился и больше никогда не будет таким же как прежде. В российском интернете появилась цензура — общеизвестный уже список запрещенных сайтов. Для одних это важнейшая политическая тема, для других повод изучить технологии шифрования и защиты анонимности, для третьих просто очередной странный закон, который приходится исполнять на бегу. Мы же поговорим о технологическом аспекте.

В данном пособии мы узнаем как быстро и просто сделать рабочее зеркало любого сайта, что позволяет сменить IP и назначить любое доменное имя. Мы даже попробуем спрятать домен в url, после чего можно сохранить локально полную копию сайта. Все упражнения можно сделать на любом виртуальном сервере — лично я использую хостинг Хетцнер и OS Debian. И конечно мы будем использовать лучший веб-сервер всех времен и народов — NGINX!

К этому абзацу пытливый читатель уже приобрел и настроил какой нибудь выделенный сервер или просто запустил Linux на старом компьютере под столом, а так же запустил Nginx последней версии со страничкой «Save me now».
Cкорее кого-нибудь спасем
Всего голосов 73: ↑68 и ↓5 +63
Комментарии 25

Поддержка https совсем без настроек

Время на прочтение 2 мин
Количество просмотров 24K
Информационная безопасность *Криптография *Go *
Написал программу для автоматического выписывания ssl-сертификатов налету (при первом запросе к домену). Для начала работы программы её достаточно просто запустить, настраивать не надо совсем (даже домены для сертификатов указывать не надо).

Подробности внутри.
Читать дальше →
Всего голосов 58: ↑50 и ↓8 +42
Комментарии 32

Настройка Reverse Proxy Apache (Debian 8) с автоматической выдачей Let's Encrypt

Время на прочтение 4 мин
Количество просмотров 36K
*nix *Apache *
Из песочницы
Так как зачастую, сайтов в организации много, а IP адресов мало, нужно иметь решение с Reverse Proxy. Для моих целей раньше всегда выступал Microsoft TMG, но у него есть свои недостатки, как и плюсы. Один из основных минусов, это то что на TMG нужно подгружать сертификаты публикуемого ресурса, что с Let's Encrypt довольно неудобно, ввиду обновления сертификатов каждые 90 дней.

Решение было найдено: поднять Reverse Proxy на Apache и сделать так, чтобы работала автовыдача сертификатов Let's Encrypt. А после чего спокойно публиковать его на Firewall, при этом порты буду перенаправляться с http на https.

За основу берем что у нас стоит чистый Debian GNU/Linux 8 (jessie). Подробнее под катом.
Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Комментарии 22

Пробы и ошибки при выборе HTTP Reverse Proxy

Время на прочтение 6 мин
Количество просмотров 27K
Блог компании Ostrovok.ru Высокая производительность *Системное администрирование *Nginx *DevOps *
Всем привет!

Сегодня мы хотим рассказать о том, как команда сервиса бронирования отелей Ostrovok.ru решала проблему роста микросервиса, задачей которого является обмен информацией с нашими поставщиками. О своем опыте рассказывает undying, DevOps Team Lead в Ostrovok.ru.

Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 7

Nextcloud внутри, а снаружи OpenLiteSpeed: настраиваем обратное проксирование

Время на прочтение 5 мин
Количество просмотров 6.9K
Хостинг Системное администрирование *IT-инфраструктура **nix *Облачные сервисы *
Туториал

Как настроить OpenLiteSpeed на обратное проксирование в Nextcloud, находящийся во внутренней сети?


Удивительно, но поиск на Хабре по запросу OpenLiteSpeed не даёт ничего! Спешу исправить эту несправедливость, ведь LSWS – достойный веб-сервер. Я люблю его за скорость и модный веб-интерфейс администрирования:


image


Несмотря на то, что OpenLiteSpeed наиболее знаменит как «ускоритель» вордпреса, в сегодняшней статье я покажу довольно специфичное его применение. А именно обратное проксирование запросов (reverse proxy). Вы скажете, что для этого привычнее использовать nginx? Я соглашусь. Но больно уж нам полюбился LSWS!


Проксирование ок, но куда? В не менее замечательный сервис – Nextcloud. Мы используем Nextcloud для создания частных «файлообменных облаков». Для каждого клиента мы выделяем отдельную VM с Nextcloud, и не хотим выставлять их «наружу». Вместо этого мы проксируем запросы через общий reverse proxy. Это решение позволяет:


  1. убрать сервер, на котором хранятся данные клиента, из интернета и
  2. сэкономить ip-адреса.

Схема выглядит так:


image


Понятно, что схема упрощена, т.к. организация инфраструктуры веб-сервисов – не тема сегодняшней статьи.


Также в данной статье я опущу установку и базовую настройку некстклауда, тем более что на Хабре есть посвящённые этой теме материалы. Но обязательно покажу настройки, без которых Nextcloud не будет работать за прокси.

Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 2

Пишем Reverse socks5 proxy на powershell.Часть 1

Время на прочтение 6 мин
Количество просмотров 6.9K
Информационная безопасность *Сетевые технологии *Разработка под Windows *
История об исследовании и разработке в 3-х частях. Часть 1 — исследовательская.
Буков много — пользы еще больше.

Постановка задачи


В ходе проведения пентестов и RedTeam кампаний не всегда удается воспользоваться штатными средствами Заказчиков, такими как VPN, RDP, Citrix и т.д. в качестве закрепления для захода во внутреннюю сеть. Где-то штатный VPN работает по MFA и в качестве второго фактора используется железный токен, где-то он жестоко мониторится и наш вход по VPN сразу же становится виден, как говорится — со всеми вытекающими, а где-то таких средств попросту нет.

В подобных случаях постоянно приходится делать так называемые «обратные туннели» — соединения из внутренней сети к внешнему ресурсу или контролируемому нами серверу. Внутри такого туннеля мы уже можем работать с внутренними ресурсами Заказчиков.

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

Конечно же, со своей стороны разработчики защитных решений не стоят в стороне и активно детектируют подобные действия.

К примеру, MSF-сессии успешно детектируются современными IPS от Cisco или Positive Tech, а обратный SSH- туннель можно задетектить практически любым мало-мальским нормальным файерволлом.

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

Давайте попробуем найти или изобрести нечто подобное.
Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 0

Пишем Reverse socks5 proxy на powershell.Часть 2

Время на прочтение 11 мин
Количество просмотров 3.1K
Информационная безопасность *Сетевые технологии *Разработка под Windows *
История об исследовании и разработке в 3-х частях. Часть 2 — разработческая.
Буков много — пользы еще больше.

В первой части статьи мы познакомились с некоторым инструментарием по организации обратных туннелей, посмотрели на их преимущества и недостатки, изучили механизм работы Yamux мультиплексора и описали основные требования к вновь создаваемому powershell-модулю. Настало время заняться разработкой клиентского powershell модуля к уже готовой реализации обратного туннеля RSocksTun.

Прежде всего, нам необходимо понять, в каком режиме будет работать наш модуль. Очевидно, что для прима-передачи данных нам необходимо будет использовать механизм windows сокетов и предоставляемые .Net возможности по потоковому чтению-записи в сокеты. Но, с другой стороны, т.к. наш модуль должен обслуживать несколько yamux-стримов одновременно, то все операции ввода-вывода не должны полностью блокировать выполнение нашей программы. Отсюда напрашивается вывод о том, что наш модуль должен использовать программную многопоточность и выполнять операции чтения-записи с yamux-сервером, а так же операции чтения-записи к серверам назначения в разных программных потоках. Ну и само собой необходимо предусмотреть механизм взаимодействия между нашими параллельными потоками. Благо, powershell предоставляет широкие возможности по запуску и управлению программными потоками.
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 2

Пишем Reverse socks5 proxy на powershell.Часть 3

Время на прочтение 9 мин
Количество просмотров 5.1K
Информационная безопасность *Сетевые технологии *Разработка под Windows *
История об исследовании и разработке в 3-х частях. Часть 3 — практическая.
Буков много — пользы еще больше

Предыдущие статьи из цикла можно найти тут и здесь =)

Проверка боем


Давайте теперь проверим работу нашего скрипта на практике. Для этого попробуем выбросить обратный туннель с виртуалки (Windows 7 .net 4.7) до линуксовой VPS на Digital Ocean и затем, воспользовавшись им, зайдем обратно на Win7. В данном случае мы имитируем ситуацию, когда Windows 7 — машина Заказчика, Linux VPS — наш сервер.
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 0

Раздаем файлы с Google Drive посредством nginx

Время на прочтение 4 мин
Количество просмотров 13K
PHP *Nginx *Google API *
Из песочницы

Предыстория


Так уж случилось, что нужно мне было где-то хранить более 1.5тб данных, да еще и обеспечить возможность скачивания их обычными пользователями по прямой ссылке. Поскольку традиционно такие объемы памяти идут уже на VDS, стоимость аренды которых не слишком вкладывается в бюджет проекта из категории «от нечего делать», а из исходных данных у меня был VPS 400GB SSD, куда при всем желании 1.5тб картинок без lossless сжатия поместить не удастся.

Читать дальше →
Всего голосов 36: ↑35 и ↓1 +34
Комментарии 25

Deploy приложений с помощью Docker Swarm

Время на прочтение 9 мин
Количество просмотров 12K
Python *IT-инфраструктура *DevOps *
Онлайн рекомендательная система видео-контента, над которой мы работаем, является закрытой коммерческой разработкой и технически представляет собой многокомпонентный кластер из собственных и open source компонентов. Целью написания данной статьи является описание внедрения системы кластеризации docker swarm под staging-площадку, не нарушая сложившийся workflow наших процессов в условиях ограниченного времени. Представленное вашему вниманию повествование разделено на две части. Первая часть описывает CI/CD до использования docker swarm, а вторая — процесс его внедрения. Кто не заинтересован в чтении первой части, может смело переходить ко второй.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Комментарии 7

Перерастая reverse proxy — технология удаленной защиты и оптимизации сайтов без изменения А-записей DNS

Время на прочтение 7 мин
Количество просмотров 20K
Блог компании DDoS-Guard Информационная безопасность *Сетевые технологии *


За последний месяц средняя нагрузка на интернет ресурсы сильно выросла из-за повсеместного перехода на дистанционную работу и обучение (как именно читайте в нашем материале «Пандемия и трафик — взгляд со стороны оператора связи». Особым спросом пользуются онлайн кинотеатры и игры, платформы для онлайн обучения, сервисы по заказу доставки еды. В таких условиях потенциальный экономический ущерб от недоступности ресурса, в том числе из-за DDoS-атак, особенно высок. Какое решение выбрать для защиты своего проекта?

В материале вас ждут:

  • Ограничения защиты через классический reverse proxy со сменой А-записей DNS, о которых часто умалчивают провайдеры.
  • Какое решение выбрать, чтобы избежать связанных с этими ограничениями рисков?
  • Реальный кейс с защитой крупного проекта, без переезда и смены A-записей.
  • Общие рекомендации по организации защиты интернет ресурса.
Читать дальше →
Всего голосов 13: ↑9 и ↓4 +5
Комментарии 1

Хостинг с полноценной защитой от DDoS-атак – миф или реальность

Время на прочтение 6 мин
Количество просмотров 3.8K
Блог компании DDoS-Guard Хостинг Информационная безопасность *

THUMB


За первые два квартала 2020 года количество DDoS-атак выросло почти в три раза, при этом 65% из них приходится на примитивные попытки «нагрузочного тестирования», которые без труда «отключают» беззащитные сайты небольших интернет-магазинов, форумов, блогов, СМИ.


Как выбрать защищенный от DDoS-атак хостинг? На что обратить внимание и к чему подготовиться, чтобы не оказаться в неприятном положении?


(Прививка от «серого» маркетинга внутри)

Читать дальше →
Всего голосов 7: ↑3 и ↓4 -1
Комментарии 0

Управление, настройка и безопасное использование Zimbra Proxy

Время на прочтение 5 мин
Количество просмотров 2.9K
Блог компании Zextras Системное администрирование *Nginx *Сетевые технологии *

Zimbra Proxy - очень важный элемент Zimbra OSE, который выполняет целый ряд функций, связанных с безопасностью и быстродействием почтовой инфраструктуры. Именно на узле Zimbra Proxy происходит централизованная аутентификация пользователей и их перенаправление на соответствующий почтовый сервер, а также централизованный сбор логов. Кроме того, Zimbra Proxy выполняет функции балансировщика нагрузки и обратного прокси - скрывает от пользователей топологию и характеристики узлов инфраструктуры Zimbra OSE, что затрудняет проведение разного рода кибератак. Также на узле Zimbra Proxy происходит терминация SSL-соединения, что снижает нагрузку на остальные серверы инфраструктуры Zimbra OSE, и кэширование. Но главная ценность Zimbra Proxy заключается в том, что этот узел позволяет обеспечивать централизованный доступ к другим узлам инфраструктуры Zimbra OSE.

На самом сервере Zimbra Proxy устанавливаются такие компоненты как Nginx и memcached. Также на почтовых серверах Zimbra OSE устанавливаются обработчики маршрутизации запросов, который позволяет Zimbra Proxy корректно находить почтовый сервер при подключении пользователя. Всё это нужно для обеспечения централизованного доступа пользователей к серверам Zimbra OSE. Суть его заключается в том, что при подключении пользователя к узлу Zimbra Proxy он самостоятельно определяет, к какому почтовому серверу относится его учетная запись и перенаправляет подключение на нужный почтовый сервер, чтобы пользователь в итоге попал в свой почтовый ящик. То, что со стороны пользователя работает как магия, на самом деле является довольно сложным механизмом со множеством различных нюансов. О них мы расскажем в данной статье. 

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Fast Reverse Proxy как альтернатива Ngrok

Время на прочтение 5 мин
Количество просмотров 8.4K
Разработка веб-сайтов *
Туториал
✏️ Технотекст 2021

Создание общедоступного URL в сети интернет к вашему локальному проекту

Что такое Ngrok, наверное знает каждый разработчик web приложений, и многие им пользуются.

Немного предыстории...

Присоединившись к новому большому проекту, над которым работают десятки разработчиков и QA специалистов, я столкнулся с тем, что разработка ведется удаленно на специально выделенных серверах.

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

Думаю все, кто более менее освоил работу в докере, уже не мыслят как можно разрабатывать без него. Причин на это много. Конечно, как и везде у докера есть своя цена и это тоже уже много раз обсуждалось.

Итак, новый проект не похож на предыдущие. Он имеет много зависимостей с другими сервисами, как внутренними так и внешними.

Большое количество внешних интерграций порождало проблему связи локального приложения с внешним миром. И если объединить внутренние сервисы используя docker netwokr не вызывало каких либо проблем, то необходимость связать внешний сервис уже требовал дополнительных инструментов.

Интеграции платежных систем всегда подразумевает, что будут callback (notification).

При такой необходимости, часто выбирают Ngrok. Хорошее решение, но в удобном варианте - платное. Особенно это ощущается, когда разработчиков много.

Т.к. Ngrok не подходил, первое что пришло в голову, создать виртуалку, на нее завести домен, и создавать ssh туннель с ним.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 28

От парсинга к Private API. В гонке за производительностью

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 5.1K
Python *API *
Кейс

В статье будет затронут способ с применением ревёрсинга траффика Android-устройства для обнаружения endpoints, по которым можно взять то, что лежит в более приятной форме, нежели получаемое через парсинг HTML-дерева.

Читать далее
Всего голосов 20: ↑10 и ↓10 0
Комментарии 6