Cloudflare выпустила Pingora v0.4.0 с экспериментальной поддержкой Windows и Rustls в качестве альтернативы OpenSSL

1 ноября 2024 года Cloudflare представила четвертый публичный релиз открытого проекта Pingora v0.4.0. Это асинхронный многопоточный фреймворк на Rust, который помогает создавать прокси-сервисы HTTP. Проект используется для создания сервисов, обеспечивающих значительную часть трафика в Cloudflare . Исходный код 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 легко настраиваются под разные задачи.

В версии Pingora v0.4.0 исправлены ранее обнаруженные ошибки, а также:

  • добавлена начальная поддержка криптографической библиотеки Rustls, использующей криптопровайдеров на базе библиотек aws-lc-rs и ring, основанных на BoringSSL.

  • появилась экспериментальная поддержка платформы Windows;

  • добавлен режим фиктивного TLS (dummy TLS), который можно применять в ситуациях, когда невозможно использовать реальную реализацию TLS;

  • добавлена поддержка модуля gRPC-web для трансляции запросов клиентов gRPC-web в запросы к серверу gRPC;

  • предоставлена возможность обработки соединений H2C (HTTP/2 поверх голого TCP, без шифрования) и HTTP/1 на одном сетевом порту;

  • добавлена возможность подключения собственных реализаций функции connect() для изменения поведения при установке сетевого соединения, например, для выставления дополнительных опций для сокета или симуляции ошибок при тестировании;

  • предоставлена возможность игнорирования информационных ответов при проксировании, таких как ответы с заголовком "Expect: 100-continue";

  • добавлена поддержка распаковки ответов, сжатых методом gzip;

  • реализован учёт состояния бэкенда в целях мониторинга;

  • добавлена возможность привязки к диапазону локальных портов.

Материал опубликован при поддержке сайта habr.com
Комментарии

    Актуальные новости по теме "Array"