
У меня была задача, сделать reverse proxy, который будет проксировать трафик и для определённых доменов выпускать новые сертификаты налету, а для некоторых нужно просто автоматически выпустить сертификат.
Для такой задачи идеально подходит Caddy.
Веб-сервер и почтовый прокси-сервер
У меня была задача, сделать reverse proxy, который будет проксировать трафик и для определённых доменов выпускать новые сертификаты налету, а для некоторых нужно просто автоматически выпустить сертификат.
Для такой задачи идеально подходит Caddy.
Привет, Хабр!
Сегодня рассмотрим, что на самом деле происходит при rewrite
в Nginx. Как работает связка rewrite ... break
, чем она отличается от rewrite ... last
, и как одно неловкое движение может превратить весь конфиг в тыкву.
Сергей Каличев, старший разработчик, Angie Software
Это вторая статья из цикла "Балансировка в Angie". Первая была посвящена обзору и общим принципам работы балансировки в продуктах Angie и почти не касалась конкретных алгоритмов. В этой статье разберём алгоритмы балансировки более предметно, с привязкой к характеристикам, обозначенным в первой статье. Если характеристика была подробно рассмотрена в первой статье, то повторяться не буду. В тексте алгоритмы балансировки называются просто "балансировщиками", поскольку каждый алгоритм представлен отдельным модулем.
Привет, Хабр!
Сегодня рассмотрим, как NGINX работает с DNS и почему proxy_pass
не резолвит домены на ходу.
Цель заключалась в создании мобильного приложения, которое бы сделало путешествие еще комфортнее для пассажиров. Приложение должно было стать связующим звеном между компанией и ее клиентами, предлагая им удобные сервисы прямо на борту теплохода. Среди ключевых функций были такие возможности, как — заказ еды и напитков, бронирование экскурсий и покупка сувениров. Также важно было обеспечить удобство для самой компании, автоматизировав процессы и снизив нагрузку на персонал.
Возможно, вы уже читали в новостях, что накануне Дня космонавтики вышел новый стабильный выпуск Angie 1.9.0, форка nginx, который продолжает развивать команда бывших разработчиков nginx. С интервалом примерно в квартал мы стараемся выпускать новые стабильные версии и радовать пользователей множеством улучшений. Данный релиз не стал исключением, но одно дело читать сухой лог изменений, а совсем другое познакомиться с функциональностью подробнее, узнать, как и в каких случаях её можно применить.
Список нововведений, на которых мы остановимся подробнее:
— Сохранение зон разделяемой памяти с индексом кэша на диск;
— Персистентный переход на резервную группу проксируемых серверов;
— 0-RTT в потоковом модуле;
— Новый статус busy
у проксируемых серверов во встроенном API статистики;
— Улучшения ACME‑модуля, позволяющего автоматически получать TLS‑сертификаты Let's Encrypt и др.;
— Кэширование TLS‑сертификатов при использовании переменных.
Перегрузка интернет-магазина – головная боль владельца бизнеса. Сайт тормозит, корзина зависает, клиенты не могут оформить заказ. Почему это происходит? Как предотвратить коллапс системы в разгар распродаж?
В этой статье расскажем, как повысить RPS и обеспечить отказоустойчивость. Поделимся планом действий и разберем кейс из нашей практики.
Наверное, не секрет, что одна из причин популярности nginx — это развитая экосистема сторонних модулей. Модули позволяют не просто настраивать какие-то детали обработки запроса, но и глубоко изменять поведение сервера.
Помимо модулей, которые решают конкретные задачи, существуют модули, которые добавляют поддержку расширений на различных языках программирования: Perl, Lua, JavaScript и других.
Теперь в этот набор добавляется ещё и модуль WASM, который мы разработали для нашего веб-сервера Angie (здесь и далее ссылки на нашу документацию). Зачем понадобился WASM на сервере, чем нас не устраивают существующие методы расширения и что в итоге получилось?
Данная статья — транскрипт выступления Владимира Хомутова на конференции HighLoad++. Владимир с 2012 года разработчик nginx, а с 2022 разработчик Angie.
Всем привет! Меня зовут Вадим Трегубов, я техлид бекэнда платформы умного дома в SberDevices. Я расскажу о проблемах роста нагрузки, возникающие у проектов интернета вещей и решениях, помогают их избежать.
Всё началось с того, что мы хотели избавиться от vendor-lock. К 2022 году мы уже наработали свои платформенные сервисы: управление голосом, создание сценария автоматизации. Хотелось их использовать еще шире, глубже и качественнее. Плюс ко всему, мы бы имели полный цикл поддержки устройств: выпуск их на рынок, обновление прошивок, докатка и улучшение пользовательского опыта.
Учитывая особенности работы с IoT, мы сформулировали требования к архитектуре...
В этой статье поделюсь быстрым способом настройки геотаргетинга на nginx + GeoIP2 в связке с локализацией Next.js на примере решения реальной задачи.
Вы узнаете как подключить и настроить GeoIP2 к nginx, как приоритизировать и настроить критерии выбора домена и локали, и как подружить это с Next.js
Привет, Хабр!
Сегодня рассмотрим, как использовать Lua в Nginx: динамическую маршрутизацию, балансировку трафика, подмену заголовков и трансформацию тела запроса в реальном времени. OpenResty и lua-nginx-module позволяют перенести часть логики на уровень веб-сервера, сокращая задержки и повышая гибкость.
Привет, Хабр!
В этой статье рассмотрим, как NGINX обрабатывает TCP/UDP-соединения: от принятия запроса до логирования.
Привети, Хабр!
Сегодня рассмотрим, как написать кастомный модуль для Angie — форка Nginx, который уже давно перерос в самостоятельного монстра с кучей фич.
Авто‑индекс — это функциональность HTTP‑сервера, позволяющая при обращении к каталогу на файловой системе автоматически выводить список содержащихся в нем файлов.
Поводом для этой статьи стал вопрос из нашего Telegram‑чата поддержки (присоединяйтесь — он открыт для всех!): «Почему в репозиториях Angie среди множества сторонних модулей отсутствует Nginx Fancy Index?».
Меня удивило, что кто‑то пользуется устаревшим модулем, поскольку ещё в 2014 году я добавил во встроенный в nginx модуль «autoindex» поддержку форматов JSON и XML, что делает сторонние решения избыточными.
Для чего понадобился сторонний модуль, упомянутый в вопросе, — вполне понятно, ведь внешний вид страницы со списком файлов по умолчанию выглядит весьма аскетично, поэтому хочется его разукрасить и улучшить. А как это сделать элегантно и просто без дополнительных модулей, я продемонстрирую наглядно на готовых примерах.
Привет, Хабр!
Nginx — это не просто веб‑сервер, а платформа, возможности которой можно расширять своими модулями. Если вам не хватает стандартного функционала и хочется больше контроля над обработкой запросов, кастомные модули могут позволить внедрять свою логику, оптимизировать маршрутизацию, фильтровать контент и реализовывать нестандартные механизмы аутентификации.
Начнем с базового модуля.
Статья посвящена обзору возможностей балансировки в трёх продуктах: Angie, Angie PRO, Angie Load Balancer в составе Angie ADC. Angie - бесплатный продукт с открытым исходным кодом, остальные два - коммерческие продукты. Некогда Angie был создан как форк NGINX.
Это первая статья из цикла статей, не знаю пока насколько длинного, о балансировке в Angie. В ней я постарался сделать обзор балансировки в целом, не касаясь конкретных балансировщиков и подробностей их конфигурирования. Вместо этого рассказываю, что между ними есть общего, принципы работы. Во второй статье планирую перечислить все балансировщики продуктов с описанием того, что они могут, для чего предназначены и некоторых их неявных особенностей. Подробностей конфигурирования по-прежнему не будет, это и так описано в документации. А тут хотелось бы скорее целостного обзора, нежели описания всех опций.
Микросервисная архитектура стала стандартом для современных IT-проектов и позволяет создавать автономные сервисы с независимым жизненным циклом. В такой среде Nginx часто используется как балансировщик нагрузки и обратный прокси, но при этом возникают определенные проблемы. Для начала их перечислим, а затем подробно рассмотрим способы решения.
Привет, коллеги! Меня зовут Санжар, я бэкенд-разработчик с опытом в настройке серверной инфраструктуры и контейнеризации для средних проектов. Сегодня хочу поделиться схемой архитектуры, которую я часто использую в своих проектах. Это не руководство к действию и не утверждение, что так нужно делать. Скорее, это возможность для меня получить обратную связь и узнать, как сделать лучше. Так что прошу вас, пишите свои идеи и советы в комментариях — это очень важно для меня. 🙂
Привет, с вами снова Егор, Tech Lead компании ИдаПроджект :) Если забыли, напомню, что я занимаюсь стратегией, процессами и командами в направлении backend разработки.
Сегодня мы вместе сделаем минимальное приложение на django + DRF и проведем нагрузочное тестирование с помощью Grafana K6. Также попробуем применить кэширование в Nginx. Будем тестировать как GET-запросы, которые можно и нужно кэшировать, так и POST-запросы, которые кэшировать нельзя.
Погнали.
Деплоймент нескольких ASP.Net Core-приложений на VPS сервере с Ubuntu и настройка доступа к ним по доменному имени 3-го уровня.