Introduction
Tengine is a web server originated by Taobao, the largest e-commerce website in Asia. It is based on the Nginx HTTP server and has many advanced features. Tengine has proven to be very stable and efficient on some of the top 100 websites in the world, including Taobao.com, Tmall.com, Youku, AliExpress, Lazada and Alibaba Cloud.
Tengine has been an open source project since December 2011. It is being actively developed by the Tengine team, whose core members are from Taobao, Ant Group, Alibaba Cloud, Sogou and other Internet companies. Tengine is a community effort and everyone is encouraged to get involved.
Features
- All features of Nginx-1.24.0 are inherited, i.e., it is compatible with Nginx.
- Dynamically reconfigure the servers, locations and upstreams without reloading or restarting worker processes.
- HTTP/3 support (QUIC v1 and draft-29).
- High-speed UDP transmission with kernel-bypass.
- Dynamically reconfigure routing based on standard and custom HTTP header, cookie, query and weights.
- Dynamically reconfigure routing to add/append custom headers or add query parameter to the HTTP request.
- Dynamically reconfigure routing to add custom headers to the HTTP response without tengine reload.
- Dynamically reconfigure TLS versions, timeout setting, SSL Redirects, CORS and enabling/disabling robots for the server and location.
- Support the CONNECT HTTP method for forward proxy.
- Enhanced operations monitoring, such as asynchronous log & rollback, DNS caching, memory usage, etc.
- Sends unbuffered upload directly to HTTP and FastCGI backend servers, which saves disk I/Os.
- Support asynchronous SSL/TLS mode, Could use QAT to offload and accelerated SSL.
- More load balancing methods, e.g., consistent hashing, session persistence, upstream health check, and resolving upstream domain names on the fly.
- Dynamic scripting language (Lua) support, which is very efficient and makes it easy to extend core functionalities.
- Support server_name in Stream modlue.
- Support collecting the running status of Tengine according to specific key (domain, url, etc).
- Limits retries for upstream servers (proxy, memcached, fastcgi, scgi, uwsgi).
- Includes a mechanism to support standalone processes.
- Protects the server in case system load or memory use goes too high.
- Multiple CSS or JavaScript requests can be combined into one request to reduce download time.
- Removes unnecessary white spaces and comments to reduce the size of a page.
- The number of worker processes and CPU affinities can be set automatically.
- The limit_req module is enhanced with whitelist support and more conditions are allowed in a single location.
- Enhanced diagnostic information makes it easier to troubleshoot errors.
- More user-friendly command lines, e.g., showing all compiled-in modules and supported directives.
- Expiration times can be specified for certain MIME types.
- Error pages can be reset to 'default'.
- More
News
- [11/06/2023] Tengine-Ingress-1.1.0(changes) and Tengine-3.1.0(changes) development version released.
- [07/21/2023] Tengine-Ingress-1.0.0(changes) and Tengine-3.0.0(changes) development version released.
- [06/08/2023] Tengine-2.4.1 development version released (changes).
- [02/08/2023] Tengine-2.4.0 development version released (changes).
- [10/18/2022] Tengine-2.3.4 development version released (changes).
- [03/25/2021] Tengine-2.3.3 development version released (changes).
- [08/20/2019] Tengine-2.3.2 development version released (changes).
- [06/18/2019] Tengine-2.3.1 development version released (changes).
- [03/25/2019] Tengine-2.3.0 development version released (changes).
- [11/11/2018] Tengine-2.2.3 development version released (changes).
- [01/25/2018] Tengine-2.2.2 development version released (changes).
- [09/27/2017] Tengine-2.2.1 development version released (changes).
- [12/02/2016] Tengine-2.2.0 development version released (changes).
- [12/31/2015] Tengine-2.1.2 stable version released (changes).
- [08/12/2015] Tengine-2.1.1 stable version released (changes).
- [12/19/2014] Tengine-2.1.0 development version released (changes).
- [05/30/2014] Tengine-2.0.3 development version released (changes).
- [03/28/2014] Tengine-2.0.2 development version released (changes).
- [03/06/2014] Tengine-2.0.1 development version released (changes).
- [01/08/2014] Tengine-2.0.0 development version released (changes).
- [11/22/2013] Tengine-1.5.2 stable version released (changes).
- [08/29/2013] Tengine-1.5.1 stable version released (changes).
- [08/04/2013] We presented Nginx Hacking at Alibaba at COSCUP 2013.
- [07/31/2013] Tengine-1.5.0 stable version released (changes).
- [05/14/2013] Tengine-1.4.6 development version released (changes).
- [05/01/2013] Tengine-1.4.5 development version released (changes).
- [03/21/2013] Tengine-1.4.4 development version released (changes).
- [01/21/2013] Tengine-1.4.3 development version released (changes).
- [11/22/2012] Tengine-1.4.2 development version released (changes).
- [10/10/2012] Tengine-1.4.1 development version released (changes).
- [09/05/2012] Tengine-1.4.0 development version released (changes).
- [07/10/2012] We started the Nginx Chinese Documentation Translation Project.
- [06/28/2012] Our Chinese translation of Nginx's documentation was accepted by the Nginx team.
- [06/09/2012] We presented Nginx Use Cases and Development at Taobao at ECOC Conference.
- [05/25/2012] Tengine-1.3.0 stable version released (changes).
- [05/09/2012] Tengine-1.2.5 stable version released (changes).
- [03/30/2012] Tengine-1.2.4 stable version released (changes).
- [03/08/2012] We are writing an open book on Nginx development.
- [02/27/2012] Tengine-1.2.3 stable version released (changes).
- [01/11/2012] Tengine-1.2.2 stable version released (changes).
- [12/07/2011] We gave a talk on Hacking Nginx at Velocity China 2011.
- [12/06/2011] Tengine-1.2.1 stable version released (changes).
- [12/02/2011] Tengine goes open source.