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. Вы должны указать совместимую с Tengine версию NGINX при установке модулей, например:
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 серверов.
- Количество рабочих процессов и привязки к CPU могут устанавливаться автоматически.
- Модуль limit_req улучшен поддержкой белых списков, и в одном location допускается больше условий.
- Улучшенная диагностическая информация облегчает устранение ошибок.
- Более удобные командные строки, например, отображение всех скомпилированных модулей и поддерживаемых директив.
- Времена истечения могут быть указаны для определенных MIME типов.
- Страницы ошибок могут быть сброшены на 'default'.
- ...