15 августа 2025 года Cloudflare представила шестой публичный релиз открытого проекта Pingora v0.6.0. Это асинхронный многопоточный фреймворк на Rust, который помогает создавать прокси-сервисы HTTP. Проект используется для создания сервисов, обеспечивающих значительную часть трафика в Cloudflare (вместо применения Nginx). Исходный код Pingora опубликован на GitHub под лицензией Apache 2.0.
Проект Pingora предоставляет библиотеки и API для создания сервисов поверх HTTP/1 и HTTP/2, TLS или просто TCP/UDP. В качестве прокси-сервера он поддерживает сквозное проксирование HTTP/1 и HTTP/2, gRPC и WebSocket. (Поддержка HTTP/3 — в планах). Pingora также включает в себя настраиваемые стратегии балансировки нагрузки и аварийного переключения. Чтобы соответствовать требованиям безопасности, он поддерживает как широко используемые библиотеки OpenSSL, так и BoringSSL, которые соответствуют требованиям FIPS (федеральных стандартов обработки информации США) и пост-квантового шифрования.
Помимо этих функций, Pingora предоставляет фильтры и обратные вызовы, позволяющие пользователям полностью настраивать то, как сервис должен обрабатывать, преобразовывать и пересылать запросы.
В рабочем режиме Pingora обеспечивает плавный перезапуск без простоев для самостоятельного обновления, не теряя ни одного входящего запроса. Syslog, Prometheus, Sentry, OpenTelemetry и другие необходимые инструменты наблюдения легко интегрируются с Pingora.
Возможности Pingora — использование Async Rust, поддержка HTTP 1/2 end to end proxy, TLS over OpenSSL или BoringSSL, gRPC и проксирование веб-сокетов, Graceful reload, настраиваемые стратегии балансировки нагрузки и аварийного переключения, поддержка различных инструментов мониторинга.
Разработчики проекта пояснили, что безопасность является главным приоритетом Pingora. Также проект работает быстро и эффективно, а API-интерфейсы прокси-сервера Pingora легко настраиваются под разные задачи.
В июне 2024 года Cloudflare выпустила Pingora v0.3.0 с поддержкой HTTP-модулей. В ноябре 2024 года вышла Pingora v0.4.0 с экспериментальной поддержкой Windows и Rustls в качестве альтернативы OpenSSL. Версия Pingora 0.5.0 вышла в мае 2025 года.
В версии Pingora v0.6.0 исправлены ранее обнаруженные ошибки, а также:
во время завершения работы обеспечено сохранение в логе имён runtime‑компонентов для упрощения диагностики проблем, вызванных отсутствием runtime‑компонентов и приводящих к задержкам во время завершения работы;
включено отслеживание фаз исполнения сервера, информация о которых может быть полезна для мониторинга или обеспечения отказоустойчивости. При смене фазы исполнения генерируется сообщение ExecutionPhase, которое можно перехватить через API Server::watch_execution_phase;
разрешено размещение в памяти сжатых словарей;
в реализации http‑сервера и http‑прокси добавлены директивы HttpServerOptions и H2Options;
реализована защита от атаки MadeYouReset, позволяющей вызвать отказ в обслуживании через манипуляцию управляющими кадрами HTTP/2.
Источник: habr.com