Перейти к содержанию

Tengine

Tengine — это веб-сервер, разработанный компанией Taobao, крупнейшим интернет-магазином в Азии. Он основан на HTTP-сервере Nginx и обладает множеством продвинутых функций. Tengine зарекомендовал себя как очень стабильный и эффективный на некоторых из 100 лучших веб-сайтов в мире, включая taobao.com и tmall.com.

Установка и совместимость

NGINX Extras предоставляет вам пакеты для веб-сервера Tengine, совместимые с SELinux и подходящие для производственной среды.

sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm
sudo yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable getpagespeed-extras-tengine
sudo yum -y install tengine
sudo dnf -y install https://extras.getpagespeed.com/release-latest.rpm
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --enable getpagespeed-extras-tengine
sudo dnf -y install tengine

Примечания по совместимости

Поскольку Tengine заявляет о 100% совместимости с стабильной веткой NGINX, вы можете легко установить все многочисленные пакеты модулей из NGINX Extras, чтобы дополнительно расширить функциональность вашего Tengine, например, чтобы добавить модуль PageSpeed.

Коммерческая подписка на репозиторий GetPageSpeed требуется только для установки модулей NGINX для Tengine. Вы должны указать совместимую версию NGINX для Tengine при установке модулей, например:

yum -y install 'nginx-module-pagespeed-1.22.1.*'

Здесь мы указали установить nginx-module-pagespeed для NGINX 1.22.1, который соответствует текущей бинарной совместимости Tengine с NGINX.

Возможности Tengine

  • Все функции nginx 1.22.1 унаследованы, т.е. он на 100% совместим с nginx.
  • Поддержка HTTP-метода CONNECT для прямого прокси.
  • Поддержка асинхронного OpenSSL с использованием аппаратного обеспечения, такого как QAT, для ускорения HTTPS.
  • Улучшенный мониторинг операций, такой как асинхронные логи и откат, кэширование DNS, использование памяти и т.д.
  • Поддержка server_name в модуле Stream.
  • Больше методов балансировки нагрузки, например, согласованное хеширование и постоянство сессий.
  • Поддержка фильтров входного тела. Это довольно удобно для написания межсетевых экранов веб-приложений с использованием этого механизма.
  • Поддержка динамического языка сценариев (Lua), который очень эффективен и облегчает расширение основных функций.
  • Ограничение повторных попыток для upstream-серверов (proxy, memcached, fastcgi, scgi, uwsgi).
  • Включает механизм для поддержки автономных процессов.
  • Защита сервера в случае, если системная нагрузка или использование памяти становятся слишком высокими.
  • Несколько запросов CSS или JavaScript могут быть объединены в один запрос для уменьшения времени загрузки.
  • Удаляет ненужные пробелы и комментарии для уменьшения размера страницы.
  • Проактивные проверки состояния upstream-серверов могут быть выполнены.
  • Количество рабочих процессов и привязка к ЦП могут быть установлены автоматически.
  • Модуль limit_req улучшен поддержкой белых списков, и в одном местоположении допускается больше условий.
  • Улучшенная диагностическая информация облегчает устранение ошибок.
  • Более удобные командные строки, например, отображение всех скомпилированных модулей и поддерживаемых директив.
  • Временные ограничения могут быть указаны для определенных MIME-типов.
  • Страницы ошибок могут быть сброшены на 'default'.
  • ...