Рубрика «nginx»

Вводная часть

Сегодня мы хотим рассказать о Pingora, новом HTTP-прокси, который мы создали своими силами, используя Rust, и который обслуживает более 1 триллиона запросов в день, повышает нашу производительность и предоставляет множество новых возможностей для клиентов Cloudflare, требуя при этом лишь треть ресурсов процессора и памяти от объема ресурсов нашей предыдущей инфраструктуры прокси.

Читать полностью »

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

Читать полностью »

Fail2ban — утилита чрезвычайно полезная во многих случаях. Думаю, многие используют её для того, чтобы в автоматическом режиме блокировать особенно назойливых «посетителей». К сожалению, если входящий поток становится слишком большим, fail2ban теряет все свои полезные свойства, потому что разбор лога безнадёжно отстаёт от реальности.

Вот, например, лог nginx из 100 тысяч строчек fail2ban при самых простых настройках (failregex='^<ADDR>') разбирает порядка 45 секунд:

$ fail2ban-regex nginx.log '^<ADDR>'

Running tests
=============

Use   failregex line : ^<ADDR>Читать полностью »

Как избежать 10 частых ошибок в настройке NGINX - 1

Помогая пользователям NGINX с разрешением проблемных ситуаций, мы поняли, что большинство из них часто совершает одни и те же ошибки конфигурации. Более того, подобные ситуации вполне могут возникнуть даже у самих инженеров NGINX! В этой статье рассмотрим 10 наиболее распространенных ошибок и объясним как их исправить.

  1. Недостаточное количество файловых дескрипторов;
  2. Директива error_log off;
  3. Отсутствие keepalive-соединения с вышестоящими серверами;
  4. Упущение механизмов наследования директив;
  5. Директива proxy_buffering;
  6. Неправильное использование директивы if;
  7. Чрезмерные проверки работоспособности;
  8. Незащищенный доступ к метрикам;
  9. Использование ip_hash, когда весь трафик поступает из одного и того же блока /24 CIDR;
  10. Игнорирование преимуществ вышестоящих групп.

Читать полностью »

За прошедшие выходные мы зафиксировали всплеск атак на веб-ресурсы, уверен, с этим столкнулись и вы. И пока зарубежные вендоры решают, кто из них уходит, кто - нет, мы продолжаем работать на отечественном рынке, улучшать механизмы работы Nemesida WAF и делиться своими результатами.

С атаками сталкиваются все владельцы публичных веб-ресурсов — некоторые узнают об этом сразу, другие — потом. По своей сути атаки можно разделить на 3 типа — попытки компрометации данных (Injection, XSS, CSRF, LFI/RFI и т.д.), DDoS L7 и атаки на $$$ (например, злоупотребление функционалом восстановления пароля по СМС).

Выявление атак

Читать полностью »

Для приготовления локализации страниц об ошибках нам понадобится сам nginx и его плагины error_page_inherit и include_serverЧитать полностью »

Если вы сталкивались с CORS, то знаете всю ту боль, которую испытывает разработчик, когда нужно сходить к API на другом домене. Если конфигурация сервера не доступна для настройки, то использовали какое-нибудь решение на основе не менее популярного решения cors-anywhere.

Пятница вечер делать нечего

Не многим изестно, что директива proxy_pass поддерживает не только локальные домены и потоки (aka upstream), но и внешние источники, например:

proxy_pass https://api.github.com/$request_uri

Читать полностью »

Введение

Совсем недавно, 25 января 2022 года вышел новый релиз Nginx - 1.21.6, в котором исправлена проблема неравномерного распределения входящих соединений между несколькими worker процессами в дефолтной конфигурации на Linux системах. Если конкретнее - use epoll, accept_mutex off, reuseport выключен.

В данной конфигурации при определенном характере нагрузки большинство входящих в Nginx соединений обрабатывается лишь одним worker процессом. 

Читать полностью »

Игорь Сысоев, основатель проекта Nginx, работавший над ним почти 20 лет, покинул коммерческую компанию занимающуюся его развитием.

Игорь работал над Nginx почти 20 лет, в прощальной публикации на сайте компании говорится дежурное что Игорь будет больше времени уделять семье, друзьям и собственным проектам.

В коммерческом Nginx Игорь Сысоев проработал 10 лет,Читать полностью »

Веб-сервер на старом смартфоне Android - 1

Бывает такое, что смартфон становится ненужным — например, на нём разбивается экран или он просто старенький, тормозит даже браузер. Что делать с таким гаджетом, не выбрасывать же его? В самом деле, американцы летали на Луну с компьютерами, у которых характеристики много хуже, чем в вашем старом смартфоне. Скорее всего, в нём 4−8 процессорных ядер, 2−4 гигабайта оперативной памяти, блок бесперебойного питания с аккумулятором. Не слабее, чем некоторые компьютеры.

Попробуем найти этому смартфону полезное применение.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js