Поздравляю с запуском!
1. не забудьте настроить nginx, чтобы он делал 308-редирект на https://rtvi.com, а то такая вот тыква для новых читателей, у которых HSTS не подсосался
Поздравляю с запуском!
1. не забудьте настроить nginx, чтобы он делал 308-редирект на https://rtvi.com, а то такая вот тыква для новых читателей, у которых HSTS не подсосался
Nginx — один из главных русских экспортных IT-продуктов. Этой программой пользуются самые крупные сайты на свете, а саму компанию полгода назад купил американский гигант F5 за 670 миллионов долларов.
Сегодня Rambler предъявил претензии на эту программу. В офисе Nginx в Москве обыски. Ходят слухи, что основатели компании задержаны.
Да, Игорь Сысоев работал на Rambler, когда писал nginx. Допустим, там есть нерешенные вопросы с правами. Хотя, не представляю себе ситуации, когда F5 купил Nginx за 670 миллионов и не провел внимательный due diligence. Но зачем обыск в офисе? Зачем задержания?
Стыдно, что наше государство раз за разом говорит «сделали что-то ценное? валите не задерживаясь, пока не отобрали».
[vc]
Выпустили книгу, сделали для неё лендинг 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 для коротких ссылок.
Алексей Иванов из 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, который я уважаю.
Первый эпизод по новостному поводу, про nginx! 90% эпизода — про технологии: что такое Nginx, почему и где он используется, что в нем нравится, а что — бесит. 10% — эмоции, получилось жарко и даже немного стыдно.
А ещё это первый эпизод, в котором два гостя, с которыми до записи я не был знаком даже шапочно.
Гости: Данила Штань, технический директор Яндекс.Вертикалей (Авто.ру, Яндекс.Недвижимость и Яндекс.Работа) и Дима Столяров — технический директор крупного русского devops аутсорсера Фланта.
Го слушать, мы создали: Apple, Google, Castbox, Spotify, Яндекс, Overcast, веб-версия.
Выяснили сегодня, что nginx плохо относится к кукам с дефисами в имени. Если кука не существует — то считает, что значение cookie-name равно всему, что идет после дефиса — -name в этом примере. Могли бы показывать какое-то уведомление, когда используешь такую бяку в конфигурации.
У нас в результате запросы шли мимо кеша, сильно выросло время ответа сервера. Самое обидное (и стыдное), что на это не был включен мониторинг, так что мы узнали о проблеме только через несколько дней. Правило: все важные метрики должны быть заведены в мониторинг.
Интересно, что ввели мы дополнительную куку из-за изменений в Safari. Для большей приватности Safari начал сбрасывать куку поставленную через javascript, а не с сервера (чтобы рекламщики не могли следить за всеми). Если вы владелец макбука или айфона и вас регулярно выкидывает с сайтов — проблема именно в этом.
Такая вот цепочка событий.
upd: читатели замечают, что это поведение nginx — известная «фича, а не баг». Вот так и выдали мы себя, что не настоящие мы сварщики (админы), а только мимикрируем :)
Эти три поста — мини-ода серверу 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 и инженеры, умеющие с ним управляться!
Максим Дунин, один из ключевых разработчиков Nginx, форкнул проект, то есть сделал его копию, которую будет развивать независимо.
Nginx — веб-сервер, который работает под капотом подавляющего большинства сайтов и веб-сервисов, де-факто стандарт индустрии.
Это разработка российского инженера Игоря Сысоева из времен Рамблера (олды помнят). 4 года назад её купил американский F5, Рамблеру это не понравилось, Игоря какое-то время держали под арестом в Москве, в общем тот ещё блокбастер, мы даже делал специальный эпизод подкаста про это.
В 2022 году московский офис компании закрыли, Максим остался в России и, по его словам, работал над проектом как волонтер.
Причиной для развода Максим называет то, что компания f5 присвоила формальный номер (CVE) двум уязвимостям: CVE-2024-24989 и ...90, хотя разработчики, по его словам, были против, потому что это экспериментальный код. Говорит, freenginx — проект, свободный от корпоративного контроля.
F5 была обязана присвоить этим ошибкам номера уязвимостей по правилам программы CVE, ведь этим кодом пользовались люди и они имеют право знать, чего ожидать. Один из людей, который принял это решение — заслуженный инженер и он уверенно отстаивает свою позицию.
Пока что ничего менять не нужно, пользуемся nginx как и раньше. Надеюсь, что происходящее не помешает развитию проекта.
Такие вот драмы в мире сисадминов!