#nginx

8 постов
пост №1728

Максим Дунин, один из ключевых разработчиков Nginx, форкнул проект, то есть сделал его копию, которую будет развивать независимо.

Nginx — веб-сервер, который работает под капотом подавляющего большинства сайтов и веб-сервисов, де-факто стандарт индустрии.

Это разработка российского инженера Игоря Сысоева из времен Рамблера (олды помнят). 4 года назад её купил американский F5, Рамблеру это не понравилось, Игоря какое-то время держали под арестом в Москве, в общем тот ещё блокбастер, мы даже делал специальный эпизод подкаста про это.

В 2022 году московский офис компании закрыли, Максим остался в России и, по его словам, работал над проектом как волонтер.

Причиной для развода Максим называет то, что компания f5 присвоила формальный номер (CVE) двум уязвимостям: CVE-2024-24989 и ...90, хотя разработчики, по его словам, были против, потому что это экспериментальный код. Говорит, freenginx — проект, свободный от корпоративного контроля.

F5 была обязана присвоить этим ошибкам номера уязвимостей по правилам программы CVE, ведь этим кодом пользовались люди и они имеют право знать, чего ожидать. Один из людей, который принял это решение — заслуженный инженер и он уверенно отстаивает свою позицию.

Пока что ничего менять не нужно, пользуемся nginx как и раньше. Надеюсь, что происходящее не помешает развитию проекта.

Такие вот драмы в мире сисадминов!

пост №1071

Первый эпизод по новостному поводу, про nginx! 90% эпизода — про технологии: что такое Nginx, почему и где он используется, что в нем нравится, а что — бесит. 10% — эмоции, получилось жарко и даже немного стыдно.

А ещё это первый эпизод, в котором два гостя, с которыми до записи я не был знаком даже шапочно.

Гости: Данила Штань, технический директор Яндекс.Вертикалей (Авто.ру, Яндекс.Недвижимость и Яндекс.Работа) и Дима Столяров — технический директор крупного русского devops аутсорсера Фланта.

Го слушать, мы создали: Apple, Google, Castbox, Spotify, Яндекс, Overcast, веб-версия.

пост №1064

Nginx — один из главных русских экспортных IT-продуктов. Этой программой пользуются самые крупные сайты на свете, а саму компанию полгода назад купил американский гигант F5 за 670 миллионов долларов.

Сегодня Rambler предъявил претензии на эту программу. В офисе Nginx в Москве обыски. Ходят слухи, что основатели компании задержаны.

Да, Игорь Сысоев работал на Rambler, когда писал nginx. Допустим, там есть нерешенные вопросы с правами. Хотя, не представляю себе ситуации, когда F5 купил Nginx за 670 миллионов и не провел внимательный due diligence. Но зачем обыск в офисе? Зачем задержания?

Стыдно, что наше государство раз за разом говорит «сделали что-то ценное? валите не задерживаясь, пока не отобрали».

[vc]

пост №976

Выяснили сегодня, что nginx плохо относится к кукам с дефисами в имени. Если кука не существует — то считает, что значение cookie-name равно всему, что идет после дефиса — -name в этом примере. Могли бы показывать какое-то уведомление, когда используешь такую бяку в конфигурации.

У нас в результате запросы шли мимо кеша, сильно выросло время ответа сервера. Самое обидное (и стыдное), что на это не был включен мониторинг, так что мы узнали о проблеме только через несколько дней. Правило: все важные метрики должны быть заведены в мониторинг.

Интересно, что ввели мы дополнительную куку из-за изменений в Safari. Для большей приватности Safari начал сбрасывать куку поставленную через javascript, а не с сервера (чтобы рекламщики не могли следить за всеми). Если вы владелец макбука или айфона и вас регулярно выкидывает с сайтов — проблема именно в этом.

Такая вот цепочка событий.

upd: читатели замечают, что это поведение nginx — известная «фича, а не баг». Вот так и выдали мы себя, что не настоящие мы сварщики (админы), а только мимикрируем :)

пост №947

Эти три поста — мини-ода серверу Nginx и его создателю Игорю Сысоеву. Я не написал о покупке компании NGINX американским гигантом F5 за 670 миллионов долларов в феврале (профайл в Ведомостях и в Форбсе), исправляюсь.

Nginx — это скотч веб-разработчика. Вы ведь знаете, что именно с помощью скотча астронавты починили свой автомобиль на луне? С помощью Nginx можно скрепить разные части сайта между собой (микросервисы, ау), ускорить сайт с помощью кеширования (скорость работы Медузы и RAWG), серьезно сэкономить на хостинге и даже защититься от DDoS-атак. Nginx поддерживает и простейшие одностраничные сайты и гигантские корпорации. Это сервер, который вобрал в себя лучшее от таможни, DHL и завода.

Мы с коллегами недавно сделали с помощью nginx две необычные вещи, которыми я хочу поделиться.

Во-первых, перевели один очень старый сайт с http на https (это улучшает позиции в гугле), по пути убрали www из всех адресов и добавили кеширование, так что сайт стал открываться раз в 10 быстрее.

Интересная часть в том, что на сайте было много хардкод-адресов http://www..., и поменять исходный код было решительно невозможно (старый perl), так что мы использовали модуль ngx_http_sub_module, который позволяет переписать содержимое ответа на лету.

Мы не поменяли ни одной строки кода в движке сайта, все изменения — через настройки nginx.

Во-вторых, добавили щепотку динамического контента в кешированные nginx'ом страницы. Под нагрузкой наш django + react сервер отвечает не очень быстро. Для того, чтобы сайт отвечал мгновенно — мы кешируем странички для анонимов, то есть регулярно пересчитываем их, а при запросах мгновенно отдаем последнюю сохраненную версию.

Для проверки одной SEO-гипотезы нам потребовалось добавить несколько случайных ссылок на каждую страницу. Казалось, nginx-кеширование и динамический контент не сочетаются. Но нет, выручил SSI — технология родом из 1993, когда писали статический html-код страниц, а динамику добавляли маааленькими кусочками. Мы добавили в код своих страниц <include>, так что основная страница кешируется как и раньше, а блок со ссылками быстро отдается отдельным быстрым микросервисом.

Да здравствует nginx и инженеры, умеющие с ним управляться!

пост №392

Выпустили книгу, сделали для неё лендинг https://special.meduza.io/book/

Хороший повод рассказать, как мы делаем такие страницы.

У нас есть git-репа static, пуш в master-ветку которого триггерит пулл на сервере, раздающем всю папку в meduza.io/static. Так отдаются страницы типа «О проекте», много разных временных файлов и спецпроекты.

Если спецпроекту нужен красивый адрес — создается nginx роут в домене special.meduza.io. Пример — конференция «Шторм» и книга «Как жить».

Обратите внимание, мы не используем отдельные домены для каждого проекта. Заведении новых доменов, выпуск SSL-сертификатов, включение anti-DDoS механизмов, когда нужно быстро переключить IP адреса — слишком много задач для автоматизации. В результате вся user-facing Медуза живет на двух доменах: основной meduza.io для читателей и mdza.io для коротких ссылок.

пост №269

Алексей Иванов из Dropbox (ex-Yandex) опубликовал просто титаническую статью про оптимизацию веб-сервера — текстовую версию своего вчерашнего доклада с NginxConf 2017 (видео пока нет).

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

Во первых, это отличный чеклист по оптимизации.

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

Я легко могу себе представить, как выходит книга в серии животных O'Reilly, написанная на основе этой статьи.

https://blogs.dropbox.com/tech/2017/09/optimizing-web-servers-for-high-throughput-and-low-latency/

P.S. Обратите внимание на кнопку "We're hiring", ненавязчиво висящую в левом верхнем углу на протяжении всей статьи и последний абзац — вот это job marketing, который я уважаю.