Открыть сервис

Apache Traffic Server

Apache Traffic Server (ATS) — это высокопроизводительный прокси-сервер с открытым исходным кодом, разработанный для кэширования, балансировки нагрузки и ускорения доставки веб-контента. Он относится к классу обратных и прямых прокси-серверов, способен обрабатывать миллионы одновременных соединений и используется в крупных интернет-инфраструктурах, включая системы доставки контента (CDN) и облачные платформы.

История

Проект Apache Traffic Server был изначально создан компанией Inktomi в конце 1990-х годов как коммерческий продукт под названием Traffic Server. В 2001 году компания Inktomi была приобретена корпорацией Yahoo!, которая использовала Traffic Server в своей внутренней инфраструктуре. В 2009 году Yahoo! передала исходный код проекта в инкубатор Apache Software Foundation, где он был принят как проект верхнего уровня в 2010 году. С тех пор ATS развивается сообществом разработчиков под эгидой Apache Software Foundation.

Первая стабильная версия ATS (1.0.0) была выпущена в 2012 году. С тех пор проект прошёл несколько крупных обновлений, добавив поддержку HTTP/2, TLS 1.3, улучшенную производительность и расширенные возможности плагинов.

Архитектура и принцип работы

Apache Traffic Server построен на событийно-ориентированной архитектуре (event-driven), что позволяет ему эффективно обрабатывать большое количество одновременных соединений без значительного потребления ресурсов. Основные компоненты ATS:

Ядро (Core)

  • Event System — управляет асинхронными операциями ввода-вывода.
  • Protocol Abstraction Layer — поддерживает HTTP, HTTPS, HTTP/2, WebSocket и другие протоколы.
  • Cache Engine — реализует кэширование контента в оперативной памяти и на диске.
  • Plugin API — позволяет расширять функциональность через подключаемые модули.

Кэширование

ATS использует многоуровневую систему кэширования:

  • RAM Cache — кэш в оперативной памяти для быстрого доступа к часто запрашиваемым объектам.
  • Disk Cache — кэш на жёстких дисках или SSD для хранения больших объёмов данных.
  • Object Cache — кэширование отдельных объектов (страниц, изображений, видео) с учётом заголовков HTTP (Cache-Control, Expires, ETag).

Кэширование может быть настроено на уровне отдельных URL, доменов или типов контента. ATS поддерживает инвалидацию кэша по времени жизни (TTL) и по запросу.

Балансировка нагрузки

ATS может выступать в роли обратного прокси, распределяя входящие запросы между несколькими серверами-источниками (origin servers). Поддерживаются алгоритмы:

Плагины

Система плагинов ATS позволяет расширять функциональность без изменения ядра. Плагины могут быть написаны на C, C++ или Lua. Примеры популярных плагинов:

  • Header Rewrite — модификация HTTP-заголовков запросов и ответов.
  • Stats Over HTTP — предоставление статистики работы сервера через HTTP.
  • Cache Key — настройка ключей кэширования.

Конфигурация и управление

Apache Traffic Server настраивается через текстовые конфигурационные файлы. Основные файлы конфигурации:

  • records.config — глобальные настройки сервера (порты, кэш, логи).
  • remap.config — правила перенаправления запросов (URL mapping).
  • cache.config — правила кэширования для отдельных URL или типов контента.
  • plugin.config — настройки подключаемых плагинов.

Управление сервером осуществляется через утилиты командной строки:

  • traffic_server — запуск и остановка сервера.
  • traffic_ctl — управление кэшем (очистка, проверка состояния) и перезагрузка конфигурации.
  • traffic_topмониторинг производительности в реальном времени.

Производительность и масштабирование

Apache Traffic Server известен своей высокой производительностью. По данным тестов, проведённых сообществом, ATS способен обрабатывать более 1 миллиона запросов в секунду на одном сервере с современным оборудованием. Ключевые факторы производительности:

Для масштабирования ATS может быть развёрнут в кластерной конфигурации, где несколько экземпляров сервера работают под единым управлением. Поддерживается репликация кэша между узлами.

Применение

Apache Traffic Server используется в следующих сценариях:

Системы доставки контента (CDN)

ATS является основой многих коммерческих и открытых CDN, таких как Apache Traffic Server CDN, а также используется в инфраструктурах крупных интернет-компаний. Например, Yahoo!, ChinaCache и другие провайдеры CDN применяют ATS для кэширования и ускорения доставки контента.

Обратный прокси

ATS может выступать в роли обратного прокси для веб-серверов, обеспечивая кэширование, балансировку нагрузки и защиту от DDoS-атак. Он часто используется вместе с Apache HTTP Server, Nginx или веб-серверами на базе Python и Ruby.

Прямой прокси

В корпоративных сетях ATS может использоваться как прямой прокси-сервер для кэширования веб-контента, ускорения доступа сотрудников к интернет-ресурсам и фильтрации трафика.

Ускорение API

ATS может кэшировать ответы REST API, снижая нагрузку на серверы приложений и уменьшая задержки для клиентов.

Сравнение с альтернативами

Apache Traffic Server конкурирует с другими прокси-серверами, такими как Squid, Varnish, Nginx и HAProxy. Основные отличия:

  • Squid — более старый прокси-сервер, ориентированный на прямые прокси и кэширование. ATS превосходит Squid по производительности и поддержке современных протоколов (HTTP/2, TLS 1.3).
  • Varnish — специализируется на кэшировании и обратном прокси, но не поддерживает прямые прокси. ATS более универсален.
  • Nginx — популярный веб-сервер и обратный прокси, но его возможности кэширования ограничены по сравнению с ATS. ATS лучше подходит для крупных CDN.
  • HAProxy — фокусируется на балансировке нагрузки и проксировании TCP/HTTP, но не имеет встроенного кэширования.

Развитие и сообщество

Apache Traffic Server развивается под управлением Apache Software Foundation. Исходный код доступен на GitHub под лицензией Apache 2.0. Сообщество разработчиков проводит регулярные релизы, добавляя новые функции и исправляя ошибки. Проект поддерживает официальную документацию, включая руководство по установке, настройке и разработке плагинов.

Основные направления развития ATS включают:

  • Улучшение поддержки HTTP/3 и QUIC.
  • Улучшение интеграции с Kubernetes и контейнерными средами.
  • Оптимизация работы с большими объёмами данных (видео, файлы).

Интересные факты

  • Apache Traffic Server используется в инфраструктуре Yahoo! с 2001 года, обрабатывая миллиарды запросов в день.
  • ATS поддерживает кэширование на уровне байтов (byte-range caching), что важно для потокового видео и больших файлов.
  • Сервер может работать как в режиме обратного, так и прямого прокси одновременно.
  • ATS имеет встроенную поддержку WebSocket, что позволяет проксировать real-time приложения.

Источники

  • Официальная документация Apache Traffic Server (trafficserver.apache.org)
  • «Apache Traffic Server: A High-Performance Web Proxy Cache» — Apache Software Foundation
  • «Performance Analysis of Apache Traffic Server» — IEEE Xplore
  • «Apache Traffic Server: Architecture and Performance» — Linux Journal
  • «Traffic Server: The Apache Way» — ApacheCon 2010

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →