ChangeLog

Tengine-3.1.0 [06 Nov 2023]

  • Security: fixed HTTP2 CVE-2023-44487 (lianglli)
  • Feature: dynamically configure different TLS protocols for different server names without tengine reload based on tengine-ingress (lianglli)
  • Feature: dynamically configure HTTP routes based on multiple values of a specific header without tengine reload based on tengine-ingress (lianglli, dreamwind1985)
  • Feature: dynamically configure HTTP routes based on multiple values of a specific cookie without tengine reload based on tengine-ingress (lianglli, dreamwind1985)
  • Feature: dynamically configure HTTP routes based on multiple values of a specific query parameter without tengine reload based on tengine-ingress (lianglli, dreamwind1985)
  • Feature: dynamically configure HTTP routes based on the modulo operation for a specific header without tengine reload based on tengine-ingress (lianglli, dreamwind1985)
  • Feature: dynamically configure HTTP routes based on the modulo operation for a specific cookie without tengine reload based on tengine-ingress (lianglli, dreamwind1985)
  • Feature: dynamically configure HTTP routes based on the modulo operation for a specific query parameter without tengine reload based on tengine-ingress (lianglli, dreamwind1985)
  • Feature: dynamically configure HTTP routes to add custom headers to the HTTP request without tengine reload based on tengine-ingress (lianglli, dreamwind1985)
  • Feature: dynamically configure HTTP routes to append custom headers to the HTTP request without tengine reload based on tengine-ingress (lianglli, dreamwind1985)
  • Feature: dynamically configure HTTP routes to add query parameter to the HTTP request without tengine reload based on tengine-ingress (lianglli, dreamwind1985)
  • Feature: dynamically configure HTTP routes to add custom headers to the HTTP response without tengine reload based on tengine-ingress (lianglli, dreamwind1985)
  • Feature: add new option https_allow_http of listen for receiving HTTP traffic on the TLS listener (drawing)
  • Feature: add new module ngx_http_debug_conn_module for debugging connection info (hongxiaolong)
  • Bugfix: fixed HTTP/3 Lua callback issue (drawing)
  • Bugfix: fixed FD leak issue in HTTP/3 XQUIC module (dreamwind1985)
  • Bugfix: fixed certificate matching issue with static configuration file in HTTP/3 XQUIC module (lurker-Chen)
  • Bugfix: fixed crash for calling ngx_http_find_virtual_server in the HTTP/3 XQUIC module (morf)
  • Bugfix: fixed crash for using thread_pool in SSL asynchronous mode (zhsnew)
  • Bugfix: fixed compilation error of ngx_http_grpc_module with ngx_tongsuo_ntls (dongbeiouba)
  • Bugfix: fixed test case issues of new module ngx_http_debug_conn_module (chobits)
  • Bugfix: fixed log error of ngx_getcpuinfo (fuchencong)

Tengine-3.0.0 [21 Jul 2023]

  • Feature: dynamically reconfigure the servers, locations and upstreams without reloading or restarting worker processes [tengine-ingress] (drawing, lianglli)
  • Feature: HTTP/3 support (QUIC v1 and draft-29) [XQUIC] (lurker-Chen, Kulsk, lianglli)
  • Feature: high-speed UDP transmission with kernel-bypass [XUDP] (D-Wythe, fengidri)
  • Feature: dynamically reconfigure canary routing based on standard and custom HTTP headers, header value, and weights [tengine-ingress] (drawing, lianglli)
  • Feature: dynamically reconfigure timeout setting, SSL Redirects, CORS and enabling/disabling robots for the ingress/path [tengine-ingress] (drawing, lianglli)
  • Change: update core to stable version Nginx-1.24.0 (lianglli)
  • Bugfix: fixed coredump caused by ngx_ssl_shutdown() with ssl_async enabled (foxriver1025)

Tengine-2.4.1 [08 Jun 2023]

  • Change: updated ngx_http_proxy_connect_module to v0.0.4 (chobits)
  • Bugfix: fixed compilation error in stream_set module (chobits)
  • Bugfix: fixed NTLS cert check, move sign/enc certficate to upstream, add ngx_tongsuo_ntls module (dongbeiouba)
  • Bugfix: fixed bug that client cannot receive right packages with ssl_async enabled (oyaya)

Tengine-2.4.0 [08 Feb 2023]

  • Feature: Update to nginx 1.22.1 (jiuzhoucui)

Tengine-2.3.4 [18 Oct 2022]

  • Feature: added new module ngx_openssl_ntls to support NTLS protocol (dongbeiouba)
  • Change: updated SSL library from BabaSSL to Tongsuo in the ngx_openssl_ntls module (wa5i)
  • Bugfix: fixed CVE-2021-23017 (chobits)
  • Bugfix: fixed deadlock in the upstream check module with "zone" directive configured in upstream block (zjd87)
  • Bugfix:fixed compilation in the upstream check module (RocFang)
  • Bugfix: fixed compilation error in the dubbo module (MengqiWu)

Tengine-2.3.3 [25 Mar 2021]

  • Feature: tengine supports dtlsv1 and dtlsv1.2. (mrpre)
  • Feature: prometheus format and additional json properties was added to ngx_http_upstream_check_module. (dkrutsko)
  • Feature: the "dubbo_pass" directive can use the variables. (spacewander)
  • Change: all features of nginx-1.18.0 are inherited, i.e., it is 100% compatible with nginx. (lianglli)
  • Change: dingtalk user group was added to README. (cnmade)
  • Change: format document of the mod_dubbo. (spacewander)
  • Bugfix: int32 values are not decoded properly in the mod_dubbo. (spacewander)
  • Bugfix: a segmentation fault might occur in a worker process when decoding a dubbo payload with integer value in the mod_dubbo. (spacewander)
  • Bugfix: memory leak in ngx_http_lua_module with debug log. (hawkxiang)
  • Bugfix: fake request was not freed in the ngx_multi_upstream_module. (spacewander)
  • Bugfix: shared memory mutex in the ngx_http_upstream_check_module. (scriptkids)
  • Bugfix: redundant upstream health check was removed in the ngx_http_upstream_check_module. (scriptkids)
  • Bugfix: duplicate log_ctx was deleted in the ngx_multi_upstream_module. (spacewander)
  • Bugfix: tengine hogged CPU during reading message in the ngx_http_upstream_dyups_module and when upstream check was used. (zjd87)
  • Bugfix: ngx_http_upstream_vnswrr_module did not support "dynamic_resolve" directive. (wangfakang)
  • Bugfix: "limit_req_zone" directive were used in multiple variables. (wangfakang)
  • Bugfix: a segmentation fault might occur in a master process. (wangfakang)
  • Bugfix: memory leak when rewrite string contains ASCII 0 character. (hongxiaolong)
  • Bugfix: variable hex_str was not used in the mod_dubbo. (Weiliang-Li)
  • Bugfix: keep-alive request did not transferred complete caused the 400 response. (fishgege)

Tengine-2.3.2 [20 Aug 2019]

  • Security: fixed CVE-2019-9511, CVE-2019-9513 and CVE-2019-9516. (wangfakang)
  • Feature: added dubbo_pass directive to support the back-end HTTP to Dubbo protocol. (MenqqiWu)
  • Feature: added VNSWRR algorithm for upstream module. (wangfakang)
  • Feature: support IPv6 for dynamic_resolve module. (wangfakang)
  • Change: support dynamic build and add some debug log for proxy_connect module. (chobits)
  • Change: updated the code from Nginx-1.17.3 version. (wangfakang)
  • Change: updated the health_check module document. (zhangqx2010)
  • Change: updated README document. (Lin-Buo-Ren)
  • Bugfix: fixed JSON format for health_check module. (IYism)
  • Bugfix: ensured 'init_worker_by_lua*' does not mutate another Nginx module's main_conf. (wangfakang)
  • Bugfix: fixed compilation error of dyups module compiled with a higher version of OpenSSL. (wangfakang)

Tengine-2.3.1 [18 Jun 2019]

  • Feature: add $ssl_handshakd_time variable for stream ssl module (mrpre)
  • Feature: support websocket check of upstream check module (mrpre)
  • Change: random index logical for round robin (wangfakang)
  • Change: update http lua module to v0.10.14 (mrpre)
  • Change: update dyups to master branch of yzprofile/dyups (chobits)
  • Change: update core to Nginx-1.16.0 (MenqqiWu)
  • Change: support dynamic module for reqstatus (chobits)
  • Change: support dynamic build for upstream dynamic module (wangfakang)
  • Change: support dynamic build for trim module (wangfakang)
  • Change: support dynamic build for footer module (wangfakang)
  • Change: support dynamic build for user_agent module (wangfakang)
  • Change: support dynamic build for concat module (mathieu-aubin)
  • Bugfix: server version strings in http2 and stream response headers (AstroProfundis)
  • Bugfix: "-m" option to show dynamic module (wangfakang)
  • Bugfix: parameter number check for limit_req directive (wangfakang)
  • Bugfix: fixed compilation error on macOS for reqstatus (chobits)

Tengine-2.3.0 [25 Mar 2019]

  • Feature: added proxy_connect module support for the CONNECT HTTP method. (chobits)
  • Feature: added server_name directive for Stream module. (mrpre)
  • Feature: added req_status_lazy directive for reqstat module. (taoyuanyuan)
  • Feature: added http2 directive to enable or disable http2 in the server block. (jinjiu)
  • Feature: added $ssl_handshake_time variable used for monitoring SSL handshake time. (jinjiu)
  • Feature: added support of variable of limit_req_zone parameter rate. (Alaaask)
  • Change: updated debug_pool module for Nginx 1.15.9. (chobits)
  • Change: updated documents for reuse_port, dso, limit_req directive changes. (chobits, wangfakang)
  • Change: merged the official limit_req logic. Now will ignore statistics when all variable values are empty. (chobits)
  • Change: the reuse_port, dso, slice directive has been removed and use the official features of Nginx. (wangfakang)
  • Change: updated and modify the official 1.15.9 test cases. (chobits, wangfakang)
  • Change: put all Tengine's modules into the modules directory which reduces the intrusion of Nginx's core module. (chobits, wangfakang)
  • Change: updated the code from Nginx-1.15.9 version, Stream, gRPC etc. (chobits, wangfakang)
  • Change: updated the Lua module to v0.10.14rc4. (wangfakang)
  • Change: updated the dyups document. (lf1029698952)
  • Change: changes of the core code are all guarded by macros. (chobits, wangfakang, fankeke, hongxiaolong, imkeeper)
  • Change: rollback accpte_filter feature. (wangfakang)
  • Bugfix: fixed compilation error of dyups module compiled with a higher version of OpenSSL. (wangfakang)
  • Bugfix: fixed init_number initialization for dyups. (FengXingYuXin)
  • Bugfix: fixed the rollback log process that may cause logs to be written to a rolled-up file when reloaded. (MengqiWu)
  • Bugfix: fixed coredump of referring null pointer for ssl_verify_client_exception. (chobits)
  • Bugfix: fixed coredump caused by upgrading core code in dyups and session_sticky modules. (wangfakang)
  • Bugfix: fixed compilation error of limit_req and http2 module. (hongxiaolong)
  • Bugfix: fixed removes the Unix domain socket file when pipe proc close listen socket. (wangfakang)
  • Bugfix: fixed compatibility for --with-openssl and --with-openssl-async. (mrpre)
  • Bugfix: fixed bug that function ngx_http_top_intput_body_filter is removed mistakenly. (chobits)
  • Bugfix: fixed reuse_port and accept_mutex conflict. (innomentats)
  • Bugfix: fixed tengine build failure when compiled with gcc7 compiler. (wangfakang)

Tengine-2.2.3 [11 Nov 2018]

  • Security: fixed CVE-2018-16843, CVE-2018-16844 and CVE-2018-16845. (chobits)

Tengine-2.2.2 [26 Jan 2018]

  • Feature: support asynchronous SSL/TLS mode, Could use QAT to offload and accelerated SSL. (mrpre)
  • Feature: support TLS1.3 and 0-RTT data. (jlijian3)
  • Feature: enabled "include" inside http upstreams. (wangfakang)
  • Change: update and fixed the test cases. (wangfakang)
  • Change: restore the functionality of the ssl_verify_client_exception directive. (jinjiu)
  • Change: updated the Debian package version number. (PeterDaveHello)
  • Change: updated README document. (taoyuanyuan)
  • Bugfix: fixed bug that the upstream_check module could trigger a segment while reload. (yongjianchn)
  • Bugfix: fixed compiler error for pipe module on FreeBSD. (MengqiWu)

Tengine-2.2.1 [27 Sep 2017]

  • Security: range filter protect from total size overflows. (CVE–2017–7529)(hongxiaolong)
  • Feature: added ngx_slab_stat module to show shared memory statistics. (hongxiaolong)
  • Feature: added rollback parameter for pipe to support roll back log file by time or file size. (MengqiWu)
  • Feature: added dns cache to avoid tengine reload, start or stop etc failed when dns server is unavailable. (wangfakang)
  • Feature: added sysguard_cpu to protect the system by monitoring the CPU usage. (wangfakang)
  • Change: Range filter: avoid negative range start. (jinjiu)
  • Change: updated ngx_slab from nginx-1.13.4 to enable slab slots and free pages statistics. (hongxiaolong)
  • Change: update test cases: Nginx.pm and HTTP2.pm. (chobits)
  • Change: HTTP/2 updates from nginx v1.9.8~1.11.6. (PeterDaveHello)
  • Change: updated core document. (chobits)
  • Change: remove the warning message when using deprecated system OpenSSL library on OS X. (chobits)
  • Change: updated travis.yml configure. (PeterDaveHello)
  • Bugfix: fixed "proxy_upstream_tries" number of retry backend is incorrect for lua subrequest. (wangfakang)
  • Bugfix: fixed bug reuse_port and accept_mutex conflict. (gwtony)
  • Bugfix: fixed bug when the worker_processes is set to auto caused reuse_port did not work. (wangfakang)
  • Bugfix: fixed bug of used reuse_port caused nginx -t failed. (chobits)
  • Bugfix: fixed bug of check return value of pipe module. (chobits)
  • Bugfix: fixed check configure error. (chobits)
  • Bugfix: fixed check aio configure option in auto/os/freebsd. (chobits)

Tengine-2.2.0 [02 Dec 2016]

  • Security: a segmentation fault might occur in a worker process while writing a specially crafted request body to a temporary file (CVE-2016-4450) (0x7E)
  • Feature: the "force_exit" directive. (aholic, chobits)
  • Feature: debug pool module which can get memory usage of nginx memory pool. (chobits)
  • Change: merged HTTP/2 module, SPDY module is removed. (PeterDaveHello)
  • Change: official nginx syslog support, tengine syslog support is removed.
  • Change: merged changes from nginx-1.8.1. (lhanjian, magicbear, chobits)
  • Change: support for EPOLL_EXCLUSIVE. (cfsego)
  • Change: export api: ngx_http_upstream_check_upstream_down. (detailyang)
  • Change: disable "check_keepalive_requests" feature for TCP health check. (cynron)
  • Change: updated reqstatus module. (cfsego)
  • Bugfix: remove duplicate code in ngx_http_named_location (innomentats)
  • Bugfix: fixed bug of session-sticky module. (detailyang)
  • Bugfix: fixed bug of resolve.conf parser. (zuopucuen)
  • Bugfix: fixed the compile warning of tfs module. (monadbobo)
  • Bugfix: fixed a segmentation fault of dynamic_resolver feature when variable is used in proxy_pass directive. (chobits)
  • Bugfix: fixed bug of invalid Set-Cookie value in session-sticky module. (YanagiEiichi)
  • Bugfix: fixed bug of uninitialized 'cf' variable in dyups module. (wangfakang)
  • Bugfix: fixed bug of duplicate peers in health check module. (FqqCS, taoyuanyuan)
  • Bugfix: fixed bug of wrong javascript content-type in concat module. (IYism)

Tengine-2.1.2 [31 Dec 2015]

  • Feature: ngx_http_reqstat_module now will trace requests if they are redirected internally by 'rewrite' or 'error_page'. (cfsego)
  • Feature: porting HTTP/2 from nginx v1.9.7, and support for SPDY v3 fallback. (PeterDaveHello, cfsego)
  • Feature: added ngx_debug_pool module to check nginx memory. (chobits)
  • Feature: porting $upstream_cookie from nginx.
  • Bugfix: fixed merging the duplicate peers for ngx_http_dyups_module. (FqqCS, taoyuanyuan)
  • Bugfix: lua-upstream-nginx-module cann't compile successfully. (cfsego)
  • Bugfix: fixed ngx_http_concat_module that took no effect on javascript. (IYism)

Tengine-2.1.1 [12 Aug 2015]

  • Feature: support for dynamic upstream update. (yzprofile)
  • Feature: enchanced ngx_http_reqstat_module. (cfsego)
  • Feature: added ssl_verify_client_exception directive. (InfoHunter)
  • Change: Reduced memory usage while parsing configuration. (ilexshen)
  • Change: added $trim_bytes and $trim_original_bytes. (taoyuanyuan)
  • Change: upgrade debian package to 2.1.1. (PeterDaveHello)
  • Change: support for auto compile for ngx_http_spdy_module. (chobits)
  • Change: updated SPDY/3.1. (chobits)
  • Change: disabled 'proxy_request_buffering' for SPDY. (chobits)
  • Change: added configue options to support set linker. (tanguofu)
  • Bugfix: fixed Backport bug of SPDY. (nginx official, ym)
  • Bugfix: fixed compile error with SL. (ym)
  • Bugfix: fixed bug of reuseport. (mnadbobo)

Tengine-2.1. [19 Dec 2014]

  • Feature: added support for collectng the running status of Tengine according to specific key (domain, url, etc). (cfsego)
  • Feature: support the SO_REUSEPORT ption, to improve performance on multicore systems. (monadbobo)
  • Feature: support for resolving upsream domain names on the fly. (InfoHunter)
  • Feature: support for rewriting to amed locations. (yzprofile)
  • Feature: added two parameters 'cro_keepx' and 'crop_keepy' to the directive 'image_filter'. (Lax)
  • Feature: support for saving SSL sessions in consistent_hash module and session_sticky module. (dinic)
  • Feature: support for compiling Tengine automatically in travis-ci.org. (Jamyn)
  • Feature: support for FastCGI health check. (yzprofile)
  • Feature: enhanced sysguard module. (InfoHunter)
  • Feature: added a variable '$normalized_request', to get normalized request URIs. (yunkai)
  • Feature: added wildcard support for 'include' directive in 'dso' block. (monadbobo)
  • Feature: added the 'gzip_clear_etag' directive. (taoyuanyuan)
  • Feature: added the 'unprintable' parameter to the 'log_escape' directive. (skoo87)
  • Change: merged changes from nginx-1.6.2. (cfsego, taoyuanyuan, chobits)
  • Change: now the order of servers in an upstream are random when initialized. (taoyuanyuan)
  • Change: slab allocator free pages defragmentation. (chobits)
  • Bugfix: SPDY/3 dropped the "delayed" flag when finalizing connection. (chobits)
  • Bugfix: fixed SPDY/3 connection leak. (chobits)
  • Bugfix: now don't truncate value of key to 255 bytes in limit_req module. (chobits)
  • Bugfix: failed to parse /etc/resolv.conf with IPv6 addresses. (lifeibo)
  • Bugfix: upstream rbtree bugfix. (taoyuanyuan)

Tengine-2.0.3 [30 May 2014]

  • Feature: added support for collecting the running status of Tengine according to specific key (domain, url, etc). (cfsego)
  • Feature: added support for generating package of debian/ubuntu format(*.deb). (betetrpm, szepeviktmr)
  • Change: merged changes between nginx-1.4.6 and nginx-1.4.7. (chobits)
  • Change: optimized the parsing and searching strategy of upstream by using rbtree. (SarahWang)
  • Change: updated the copyright.
  • Bugfix: fixed bugs of session-sticky module. (dinic)
  • Bugfix: fixed compiling and installing issues of DSO modules. (cfsego)
  • Bugfix: fixed bugs of SPDY protocol. (chobits)

Tengine-2.0.2 [28 Mar 2014]

  • Bugfix: send output queue after processing of read event in SPDY. (chobits)
  • Bugfix: CVE-2014-0133 and CVE-2014-0088. (chobits)

Tengine-2.0.1 [06 Mar 2014]

  • Feature: now non-buffering request body mechanism supports chunked
    input. (yaoweibin)
  • Feature: trim module added more rules, and now can be enabled according
    to variables. (taoyuanyuan)
  • Feature: resolver can be configured automatically from /etc/resolv.conf.
    (lifeibo, yaoweibin)
  • Feature: added variables starting with "$ascii_", which can represent
    arbitrary ASCII characters (yzprofile)
  • Feature: added a new directive "image_filter_crop_offset". (lax)
  • Change: merged changes between nginx-1.4.4 and nginx-1.4.6. (chobits, cfsego)
  • Bugfix: upstream health check module failed occasionally when using
    keep-alive connections. (lilbedwin)
  • Bugfix: nginx crashed when upstream rejected nginx WebSocket connection. (Hao Chen)
  • Bugfix: reduce nginx memory consumption when processing large files. (cfsego)
  • Bugfix: disabled redirects to named locations if URI is not set.

Tengine-2.0.0 [08 Jan 2014]

  • Feature: now DSO module does not need the original source code or
    compiler options when compiling a new module. (monadbobo)
  • Feature: added support for SPDY v3, and SPDY/HTTP servers can listen on
    the same port. (lilbedwin,chobits)
  • Feature: added support for setting retries for upstream servers (proxy,
    memcached, fastcgi, scgi, uwsgi). (supertcy)
  • Feature: now tfs module can report access status to rcs while keepalive.
    (zhcn381)
  • Feature: now the directive "if" supports ">", "<", ">=", "<=" operators
    for numeric comparison. (flygoast)
  • Feature: now upstream health check module uses keep-alive connections.
    (lilbedwin)
  • Feature: now trim module can handle SSI and ESI comments properly.
    (taoyuanyuan)
  • Feature: now directive "expires_by_types" supports wildcard such as
    "text/*". (zhcn381)
  • Feature: added variables starting with "$base64_decode_" to encode
    variables in base64. (yzprofile)
  • Feature: added variables starting with "$md5_encode_" to encode variables
    in md5. (yzprofile)
  • Feature: added a variable "$time_http" to get the current HTTP time.
    (flygoast)
  • Feature: added a variable "$full_request" to get the original request
    URL with scheme and host. (yzprofile)
  • Feature: added variables starting with "$escape_uri_" to escape variables
    into formal URL syntax. (yzprofile)
  • Feature: added a variable "$raw_uri" to get the original URI without
    arguments. (flygoast)
  • Feature: added support for logging subrequests in nanoseconds. (jinglong)
  • Feature: added a new API function to encode URL into base64. (lilbedwin)
  • Change: merged changes between nginx-1.2.9 and nginx-1.4.4. (cfsego)
  • Change: now stub_status module does not log subrequests. (jinglong)
  • Bugfix: fixed a bug in footer module when reading a response with
    a "Content-Encoding" header. (yaoweibin)
  • Bugfix: fixed a bug when "client_body_postpone_size" is set to 0.
    (yaoweibin)
  • Bugfix: fixed a compilation warning of Lua module. (diwayou)

Tengine-1.5.2 [22 Nov 2013]

  • Security: a character following an unescaped space in a request line
    was handled incorrectly (CVE-2013-4547); the bug had appeared in
    0.8.41. Thanks to Ivan Fratric of the Google Security Team.
  • Bugfix: fix a bug of 'nodelay' might be ignored in limit_req module.
    (cfsego)
  • Bugfix: fix a bug in trim module when processing javascript comment.
    (taoyuanyuan)

Tengine-1.5.1 [29 Aug 2013]

  • Feature: added the directive 'retry_cached_connection' which could
    disable unconditional retries with a cached backend connection.
    (yaoweibin)
  • Feature: added the argument of 'ncpu' to 'sysguard_load' directive.
    (yzprofile)
  • Bugfix: fixed a bug in referer module that regex rules might be
    invalid with https requests. (lilbedwin)
  • Bugfix: fixed a bug that the trim module might send a zero-size
    buffer. (taoyuanyuan)
  • Bugfix: fixed a compile error when using the configure option
    '--without-dso'. (zhuzhaoyuan)
  • Bugfix: fixed two compile warnings. (zzjin, diwayou)

Tengine-1.5.0 [31 Jul 2013]

  • Feature: added ABI compatibility verification for DSO modules.
    (monadbobo)* Feature: added non-buffering request body mechanism. Now the http proxy
    and fastcgi module can send requests to backend servers when it receives
    part of a request body. (yaoweibin)
  • Feature: added trim module which can remove unnecessary white spaces and
    comments to reduce the size of a page. (taoyuanyuan)
  • Feature: added the accept filter mechanism which supports to do some
    filter processing after accepting a new connection. (yzprofile)
  • Feature: Now the server banner in a default error page can be replaced
    by the string specified in server_tag. (zhuzhaoyuan)
  • Bugfix: fixed the bug of the 'buffer' argument might be ignored in the
    'access_log' directive. (cfsego)
  • Bugfix: fixed the session_sticky module didn't issue the session cookie
    in the direct mode. (dinic)

Tengine-1.4.6 [14 May 2013]

  • Bugfix: merged the changes of Nginx-1.2.9 and fixed the security
    problem CVE-2013-2070. This bug had appeared in 1.4.0. (yaoweibin)

Tengine-1.4.5 [01 May 2013]

  • Feature: added the consistent_hash module which dispatches requests
    to upstream servers based on consistent hashing algorithm of a
    variable specified. (dinic)Feature: added the "keepalive_timeout" directive to set timeout for
    the upstream keepalive connections. (jinglong)
    Feature: now the configure script supports compilation of all modules
    to be shared or static. (monadbobo)Change: updated the Lua module to 0.7.19. (jinglong) Change: merged the changes of Nginx-1.2.8. (yaoweibin)* Bugfix: fixed the compile warnings of syslog and upstream_check
    modules in GCC-4.4.5. (magicbear)

Tengine-1.4.4 [21 Mar 2013]

  • Feature: added the session_sticky module by using which one client
    can be always served by the same upstream server. (dinic)Feature: now the sysguard module can protect the server based on
    the amount of free memory. (lifeibo)
    Feature: added support for geoip regional database in geoip module.
    (jasonlfunk)
  • Feature: log_empty_request can also disable the logs for timeout (408)
    empty request. (yaoweibin)* Change: merged changes between Nginx-1.2.5 and Nginx-1.2.7. (cfsego)
  • Change: CPU affinity is off by default now. (cfsego)* Bugfix: fixed a bug that sysguard and upstream_check module didn't
    compile on Solaris 11. (lifeibo, yaoweibin)
  • Bugfix: fixed a bug with TFS module that it might return bad values.
    (zhcn381)
  • Bugfix: fixed a bug with TFS module that it might corrupt large files.
    (zhcn381)

Tengine-1.4.3 [21 Jan 2013]

  • Feature: added the TFS module which provides a RESTful API to Taobao
    File System. (zhcn381, monadbobo)* Feature: added a $sent_cookie_XXX variable which could be used to get
    the value of cookie XXX from the Set-Cookie headers. (skoo87)
  • Feature: now the syslog logging supports host name and domain name as
    its destination address. (cfsego)Change: added an attribute 'id' for the server directive in the
    upstream block. (yaoweibin)
    Bugfix: fixed a bug of DSO module which might stop Tengine from
    reloading. (monadbobo)Bugfix: fixed a segmentation fault bug of upstream_check module when
    the check timeout was larger than the check interval. (yaoweibin)
    Bugfix: fixed a segmentation fault bug of user_agent module when there
    was no User-Agent header existed in a request. (dinic)* Bugfix: fixed the bug that sysguard module didn't work on Mac OS.
    (lizi)

Tengine-1.4.2 [22 Nov 2012]

  • Feature: added the option '--dso-tool-path' to configure script, which can specify the installation path for the dso_tool script. (monadbobo)
  • Feature: added a new variable '$unix_time', whose value is the current number of seconds since unix epoch time. (yaoweibin)
  • Feature: added the 'make test' target to run test cases. (yaoweibin)
  • Feature: now the sysguard module can be used in a location block. (lifeibo)
  • Change: merged the changes from Nginx-1.2.4 and Nginx-1.2.5. (zhuzhaoyuan)
  • Change: now checks the error codes of input body filters more carefully to avoid socket leaks. (cfsego)* Bugfix: fixed the problem with directive limit_req can't handle 4 arguments. (monadbobo)
    Thanks to LazyZhu.*   Bugfix: fixed a compilation error with the file of sysinfo in Cygwin. (lifeibo)
    Thanks to Cao Peiran.
    
  • Bugfix: now the installation script will copy the user_agent module's configuration. (monadbobo)
    Thanks to Jianbin Xiao.
    
  • Bugfix: fixed the installation directory error with the DSO module when creating the RPM package. (monadbobo)
    Thanks to Jianbin Xiao and Ren Xiaolei.
    

Tengine-1.4.1 [10 Oct 2012]

  • Feature: added jemalloc library support. (fanjizhao)
  • Feature: added a new variable '$dollar', whose value is the dollar sign ('$'). (zhuzhaoyuan)Feature: added the option 'off' to 'worker_cpu_affinity' directive. (cfsego) Change: disable CPU affinity when a new worker process is forked as an old one exits abnormally. (cfsego)Bugfix: fixed compile error with shared Lua module when using LuaJIT in Mac OS. (monadbobo) Bugfix: fixed the wrong module execution order with the third party shared filter module. (monadbobo)

Tengine-1.4.0 [05 Sep 2012]

  • Feature: added the dynamic module loading support (a.k.a. DSO), so we don't have to recompile tengine when we want to add a new module. (monadbobo)
  • Feature: updated the Lua module to the latest stable version. (chaoslawful, agentzh, jinglong)
  • Feature: added json and csv format output for the upstream_check module. (yaoweibin)
  • Feature: added the 'log_empty_request' directive which could be used to turn off logs from a connection without HTTP data. (zhuzhaoyuan)
  • Feature: added the 'concat_delimiter' directive to the concat module to allow adding delimiter between each file. (dinic)
  • Feature: added the 'concat_ignore_file_error' directive to ignore file
    errors and the syntax of concat is less strict now. (dinic)
  • Feature: added the 'default' option to the 'error_page' directive to
    set all error pages to default values. (jinglong)
  • Feature: added the 'priority' directive of the procs module. (yzprofile)
  • Feature: added the 'delay_start' directive of the procs module. (yzprofile)
  • Change: merged changes from nginx-1.2.3. (zhuzhaoyuan)
  • Bugfix: fixed a segmentation fault bug of the geo module when 'range'
    was set without default value. (yzprofile)
  • Bugfix: fixed a segmentation fault bug with the procs module. (yzprofile)
  • Bugfix: fixed a socket leak bug when upstream_check was enabled. (yaoweibin)
  • Bugfix: fixed some bugs of the limit_req module. (monadbobo)
  • Bugfix: fixed wrong format types with error logs. (yaoweibin)
  • Bugfix: fixed a compile error if the perl module was used with procs. (yzprofile)

Tengine-1.3.0 [25 May 2012]

  • Feature: added the Lua module which embeds the power of Lua into Tengine. (chaoslawful, agentzh)
  • Feature: Feature: added the procs module which provides a mechanism to support
    standalone processes. (yzprofile)
  • Change: renamed the parameter from nongreedy to greedy in the user_agent module. (dinic)
  • Bugfix: fixed a segmentation fault bug in syslog with uninitialized pointer problem. (cfsego)
  • Bugfix: fixed a compile error in syslog with --with-ipv6 configuration parameter. (cfsego)

Tengine-1.2.5 [09 May 2012]

  • Feature: added the upstream_check module which could be used to do proactive
    health checks of upstream servers. (yaoweibin)
  • Feature: now allow to specify program identifiers with syslogs. (cfsego)
  • Change: merged changes between nginx-1.0.14 and nginx-1.0.15. (zhuzhaoyuan)
  • Change: the default value of 'accept_mutex_delay' was changed from 500ms
    to 100ms to gain better performance. (zhuzhaoyuan)
  • Bugfix: fixed a segmentation fault bug in syslog when failed to connect to an upstream server. (cfsego)
  • Bugfix: fixed the bug of 'access_log' might not be compatible with the 'buffer' parameter. (cfsego)

Tengine-1.2.4 [30 Mar 2012]

  • Feature: added the user_agent module. (dinic)
  • Feature: added the 'log_escape' directive. (agentzh, skoo87)
  • Change: merged changes between nginx-1.0.12 and nginx-1.0.14. (zhuzhaoyuan)
  • Bugfix: fixed a bug in the limit_req module. (liseen.wan)
  • Bugfix: fixed a bug in subrequest. (lifeibo)

Tengine-1.2.3 [27 Feb 2012]

  • Feature: added the 'request_time_cache' directive to get more precise
    $request_time/$request_time_msec/$request_time_usec. (yzprofile)
  • Feature: added the slice module. (zhuzhaoyuan)
  • Change: merged changes between nginx-1.0.11 and nginx-1.0.12. (zhuzhaoyuan)
  • Change: deleted unused browsers detection. (zhuzhaoyuan)
  • Bugfix: fixed a bug in upstream when reading header. (lifeibo)
  • Bugfix: fixed a bug in 'expires_by_types'. (lifeibo)

Tengine-1.2.2 [11 Jan 2012]

  • Feature: added the input body filter mechanism. (cfsego)
  • Feature: added SSL dialog support to the mail module. (cfsego)
  • Change: merged changes between nginx-1.0.10 and nginx-1.0.11. (zhuzhaoyuan)
  • Change: turned 'lingering_close' off by default. (zhuzhaoyuan)
  • Bugfix: fixed a bug in pipe logs. (cfsego)
  • Bugfix: fixed a 'forbid_action' bug in the limit_req module. (monadbobo)
  • Bugfix: fixed a bug in 'backtrace_max_stack_size'. (monadbobo)
  • Bugfix: fixed a bug in the footer module when output body is empty. (dinic)
  • Bugfix: fixed the last hostname letter omitted bug in syslog. (cfsego)

Tengine-1.2.1 [06 Dev 2011]

  • Bugfix: fixed a segmentation fault bug when using default error log or access
    log. (yzprofile)

Tengine-1.2.0 [29 Nov 2011]

  • The first public release.
  • Feature: added syslog support to error_log and access_log. (cfsego)
  • Feature: added pipe support to error_log and access_log. (cfsego)
  • Feature: added realloc() related APIs. (gongyuan)
  • Feature: added time specific variables. (skoo87)
  • Feature: added the backtrace module. (monadbobo)
  • Feature: added whitelist support to the limit_req module. (monadbobo)
  • Feature: now more limit_req directives are allowed in a single location. (monadbobo)
  • Feature: added the sysguard module. (lifeibo)
  • Feature: added two APIs, ngx_http_header_in and ngx_http_header_out. (lifeibo)
  • Feature: added two variables, $request_time_msec and $request_time_usec. (jinglong)
  • Feature: added the footer module. (yunxing)
  • Feature: added the $conn_requests variable which is similar to Apache's '%K'. (lieyuan)
  • Feature: added the $host_comment variable. (yunxing)
  • Feature: added a 'ratio' parameter to access_log so now access log can be sampled. (cfsego)
  • Feature: added the 'server_info' and 'server_admin' directives to show
    more information when 4xx/5xx errors encountered. (lieyuan)
  • Feature: added the '-d' command line option to dump contents of
    the configuration files. (piaoling)
  • Feature: added response time statistics to the stub_status module. (jinglong)
  • Feature: added the 'server_tag' directive. (zhuzhaoyuan)
  • Feature: now the 'worker_processes' supports the 'auto' parameter, which
    sets the worker process numbers to the cores automatically. (cfsego)
  • Feature: now the 'worker_cpu_affinity' directive supports the 'auto'
    parameter, which binds the worker processes to the cores automatically. (cfsego)
  • Feature: added the 'ssl_pass_phrase_dialog' directive. (cfsego)
  • Feature: added the '-s start' command line option. (zhuzhaoyuan)
  • Feature: added '-m' command line option to list all compiled-in modules. (zhuzhaoyuan)
  • Feature: added the 'expires_by_types' directive. (lifeibo)
  • Feature: added the '-l' command line option to list all supported directives. (dinic)
  • Feature: added the ngx_atoll() API, which can convert a string to a long
    long integer (64 bits). (lifeibo)
  • Feature: now status lines (302, 405) are RFC-2616 compatibale. (zhuzhaoyuan)
  • Feature: now ngx_escape_uri/ngx_unescape_uri supports encoding/decoding
    style of Java and PHP. (zhuzhaoyuan)
  • Feature: now configuration files included are sorted. (zhuzhaoyuan)
  • Feature: now 'error_page' can be reset to 'default' (zhuzhaoyuan)
  • Change: turned 'msie_padding' off by default. (zhuzhaoyuan)
  • Bugfix: fixed a bug when subrequest_in_memory and upstream keepalive
    being used. (lifeibo)
  • Bugfix: fixed a bug in $sent_http_connection and $sent_http_keep_alive. (Zhongsheng)
  • Bugfix: fixed a bug that error_page directive can't detect duplicate
    codes and inherited correctly. (zhuzhaoyuan)
  • Bugfix: fixed a segmentation fault bug in the FastCGI module, while
    processing duplicated HTTP headers. (monadbobo)
  • Bugfix: fixed a bug that file in open_file_cache can't be updated. (cfsego)
  • Bugfix: fixed a bug in 'worker_cpu_affinity'. (cfsego)