Freenginx
Freenginx — это свободный и открытый веб-сервер и обратный прокси-сервер, созданный в 2024 году как форк (ответвление) проекта Nginx. Разработка ведётся независимым сообществом под руководством бывшего разработчика Nginx Максима Дунина. Основной целью проекта является создание альтернативы, свободной от влияния корпоративных интересов, в частности, компании F5 Networks, владеющей Nginx.
История
Проект Nginx, изначально созданный Игорем Сысоевым, долгое время развивался как открытое программное обеспечение. В 2019 году компания F5 Networks приобрела Nginx Inc. После этого в сообществе возникли опасения относительно будущего модели управления проектом и его лицензионной политики. В 2022 году из Nginx выделился форк Angie, созданный бывшими сотрудниками Nginx Inc.
В 2024 году ситуация обострилась. В феврале 2024 года Максим Дунин, один из ключевых разработчиков Nginx, объявил о создании форка Freenginx. Причиной стало несогласие с политикой F5 Networks, которая, по его словам, начала внедрять в Nginx изменения, не согласованные с сообществом и направленные на извлечение коммерческой выгоды. В частности, сообщалось о попытках включения в код Nginx функций, связанных с проприетарными продуктами F5.
Дунин заявил, что Freenginx будет полностью свободным проектом, управляемым сообществом, без какого-либо корпоративного контроля. Разработка ведётся на платформе GitHub, где доступен исходный код.
Особенности и отличия от Nginx
Freenginx на момент создания базировался на последней стабильной версии Nginx (1.25.x) и унаследовал все её основные возможности. Ключевые отличия от Nginx и форка Angie:
- Независимость от F5 Networks: Freenginx не имеет никаких связей с компанией F5 Networks и её дочерними структурами. Разработка ведётся исключительно силами сообщества.
- Отсутствие коммерческой направленности: В отличие от Nginx, который может включать функции, ориентированные на корпоративных клиентов F5, Freenginx ориентирован на потребности широкого круга пользователей, включая хостинг-провайдеров, разработчиков и администраторов.
- Открытость процесса разработки: Все решения по развитию Freenginx принимаются публично в репозитории проекта. Любой желающий может предложить изменения, участвовать в обсуждениях и тестировании.
- Отсутствие дополнительных функций: В отличие от форка Angie, который добавил ряд новых функций (например, динамические модули, улучшенное управление трафиком), Freenginx на начальном этапе сосредоточен на поддержании совместимости с Nginx и обеспечении стабильности. Планируется постепенное добавление новых возможностей, но без спешки и с учётом мнения сообщества.
Технические характеристики
Freenginx наследует архитектуру Nginx, основанную на асинхронной, неблокирующей модели обработки запросов. Это обеспечивает высокую производительность при работе с большим количеством одновременных соединений, особенно при обслуживании статического контента.
- Протоколы: HTTP/1.1, HTTP/2, HTTP/3 (QUIC), WebSocket, FastCGI, uWSGI, SCGI, gRPC.
- Модули: Поддерживается модульная архитектура. Статические модули компилируются вместе с сервером, динамические модули могут загружаться во время работы.
- Конфигурация: Используется декларативный язык конфигурации, аналогичный Nginx.
- Платформы: Freenginx компилируется и работает на большинстве Unix-подобных операционных систем (Linux, FreeBSD, macOS) и на Windows (с ограничениями).
Применение
Freenginx, как и Nginx, используется в следующих сценариях:
- Веб-сервер: Для обслуживания статических файлов (HTML, CSS, JavaScript, изображения) и как фронтенд для динамических приложений (например, на PHP, Python, Ruby).
- Обратный прокси-сервер: Для распределения нагрузки между несколькими бэкенд-серверами, балансировки трафика, кэширования контента и терминирования SSL/TLS.
- Балансировщик нагрузки: Для распределения входящих запросов между несколькими серверами приложений.
- Почтовый прокси: Для проксирования почтовых протоколов (SMTP, IMAP, POP3).
- Платформа для разработки: Используется для локальной разработки и тестирования веб-приложений.
Сообщество и лицензия
Freenginx распространяется под лицензией BSD 2-Clause, что позволяет свободно использовать, модифицировать и распространять код как в открытых, так и в проприетарных проектах. Сообщество активно развивается, ведётся обсуждение на GitHub, в чатах и на форумах. Проект приветствует вклад от всех желающих.
Критика и перспективы
На момент создания Freenginx столкнулся с рядом вызовов:
- Неопределённость с будущим: Как и любой форк, Freenginx зависит от активности сообщества и способности привлечь достаточное количество разработчиков для поддержки и развития проекта.
- Отсутствие коммерческой поддержки: В отличие от Nginx, который имеет коммерческую поддержку от F5 Networks, Freenginx на начальном этапе полагается только на сообщество.
- Конкуренция с другими форками: Существуют другие форки Nginx, такие как Angie и Tengine, которые также предлагают альтернативные пути развития. Выбор между ними зависит от конкретных потребностей пользователя.
Тем не менее, Freenginx представляет собой значимую альтернативу для тех, кто ценит независимость и открытость в разработке. Его будущее будет зависеть от способности сообщества поддерживать проект и привлекать новых участников.
Источники
- Официальный сайт проекта Freenginx.
- Репозиторий проекта на GitHub.
- Публичное заявление Максима Дунина о создании форка.
- Статьи на профильных ресурсах (Habr, OpenNet).
- Документация Nginx.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →