高性能 Web 平臺 OpenResty v1.11.2.1 發布
OpenResty 是一個基于 Nginx 與 Lua 的高性能 Web 平臺,其內部集成了大量精良的 Lua 庫、第三方模塊以及大多數的依賴項。用于方便地搭建能夠處理超高并發、擴展性極高的動態 Web 應用、Web 服務和動態網關。
OpenResty 通過匯聚各種設計精良的 Nginx 模塊(主要由 OpenResty 團隊自主開發),從而將 Nginx 有效地變成一個強大的通用 Web 應用平臺。這樣,Web 開發人員和系統工程師可以使用 Lua 腳本語言調動 Nginx 支持的各種 C 以及 Lua 模塊,快速構造出足以勝任 10K 乃至 1000K 以上單機并發連接的高性能 Web 應用系統。
OpenResty 的目標是讓你的Web服務直接跑在 Nginx 服務內部,充分利用 Nginx 的非阻塞 I/O 模型,不僅僅對 HTTP 客戶端請求,甚至于對遠程后端諸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都進行一致的高性能響應。
更新日志
- upgraded the Nginx core to 1.11.2.
- see the changes here: http://nginx.org/en/CHANGES
- feature: bundled the sess_set_get_cb_yield patch for OpenSSL to support the ssl_session_fetch_by_lua* directives of ngx_lua.
- win32: we now use pcre 8.39 and openssl 1.0.2h in our official build.
- feature: applied the
ssl_pending_session.patch
to the nginx core to support the ssl_session_fetch_by_lua* and ssl_session_store_by_lua* in ngx_lua. - feature: added
<openresty-prefix>/site/lualib/
to the default Lua module search paths used by OpenResty. This location is for 3rd-party Lua modules so that the users will not pollute the<openresty-prefix>/lualib/
directory with non-standard Lua module files. - feature: now we create the
<openresty-prefix>/bin/openresty
symlink which points to<openresty-prefix>/nginx/sbin/nginx
to avoid polluting thePATH
environment with the name "nginx". - feature: added the
upstream_timeout_fields
patch to the nginx core to allow efficient per-request connect/send/read timeout settings for individual upstream requests and retries. - feature: added the official LuaJIT documentation from LuaJIT 2.1 to our
restydoc
indexes. - feature: added the Lua 5.1 reference manual from lua 5.1.5 to our restydoc indexes.
- bugfix: special characters like spaces in nginx configure option values (like
--with-pcre-opt
and--with-openssl-opt
) were not passed correctly. thanks Andreas Lubbe for the report. - change: now we use our own version of default
index.html
and50x.html
pages. - upgraded ngx_lua to 0.10.6.
- feature: added new shdict methods: lpush, lpop, rpush, rpop, llen for manipulating list-typed values. these methods can be used in the same way as the redis commands of the same names. Essentially we now have shared memory based queues now. each queue is indexed by a key. thanks Dejiang Zhu for the patch.
- feature: implemented ssl_session_fetch_by_lua* and ssl_session_store_by_lua* configuration directives for doing (distributed) caching of SSL sessions (via SSL session IDs) for downstream connections. thanks Zi Lin for the patches.
- feature: added pure C API for setting upstream request connect/send/read timeouts in balancer_by_lua* on a per session basis. thanks Jianhao Dai for the original patch.
- feature: ssl: add FFI functions to parse certs and private keys to cdata. With the current FFI functions the certificate chain and the private key are parsed from DER every time they are set into the SSL state. Now we can cache the parsed certs and private keys as cdata objects directly. These new functions make it possible to avoid the DER -> OpenSSL parsing. Thanks Alessandro Ghedini for the patch.
- feature: shdict:incr(): added the optional
init
argument to allow intializing nonexistent keys with an initial value. - feature: allow tcpsock:setkeepalive() to receive nil args. thanks Thibault Charbonnier for the patch.
- bugfix:
*_by_lua_file
: did not support absolute file paths on non-UNIX systems like Win32. thanks Someguynamedpie for the report and the original patch. - bugfix: fake connections did not carry a proper connection number. thanks Piotr Sikora for the patch.
- bugfix: "lua_check_client_abort on" broke HTTP/2 requests.
- bugfix:
ngx_http_lua_ffi_ssl_create_ocsp_request
: we did not clear the openssl stack errors in the right place. - bugfix: ngx.sha1_bin() was always disabled with nginx 1.11.2+ due to incompatible changes in nginx 1.11.2+. thanks manwe for the report.
- bugfix: segfaults might happen when calling ngx.log() in ssl_certificate_by_lua* and error_log was configured with syslog. thanks Jonathan Serafini and Greg Karékinian for the report.
- bugfix: fixed a typo in the error handling of the
SSL_get_ex_new_index()
call for our ssl ctx index. thanks Jie Chen for the report. - bugfix: when the nginx core does not properly initialize
r->headers_in.headers
(due to 400 bad requests and etc), ngx.req.set_header() andngx.req.clear_header() might lead to crashes. thanks Marcin Teodorczyk for the report. - bugfix: fixed crashes in ngx.req.raw_header() for HTTP/2 requests. now we always throw out a Lua exception in ngx.req.raw_header() when being called in HTTP/2 requests.
- bugfix: specifying the C macro
NGX_LUA_NO_FFI_API
broke the build. thanks jsopenrb for the report. - doc: ngx.worker.count() is available in the init_worker_by_lua* context.
- doc: documented that ngx.req.raw_header() does not work in HTTP/2 requests.
- doc: typo fixes from Otto Kekäläinen and Nick Galbreath.
- upgraded lua-resty-core to 0.1.8.
- updated the
resty.core.shdict
Lua module to reflect the recent addition of list-typed shdict values in ngx_lua. - feature: shdict:incr(): added the optional
init
argument to allow intializing nonexistent keys with an initial value. - feature: added the ngx.ssl.session module for the contexts ssl_session_fetch_by_lua* and ssl_session_store_by_lua*. thanks Zi Lin for the patches.
- feature: ngx.balancer: added new API functions set_timeouts() for setting per-session connect/send/read timeouts for the current upstream request and subsequent retries. thanks Jianhao Dai for the patch.
- feature: ngx.ssl: add new API functions parse_pem_cert(), parse_pem_priv_key(), set_cert(), and set_priv_key(). thanks Alessandro Ghedini for the patch.
- updated the
- upgraded lua-resty-dns to 0.17.
- feature: now we support parsing answer records in all the answer sections (
AN
,NS
, andAR
). thanks Zekai Zheng for the patch. - optimize: commented out 3 lines of useless Lua code in
parse_response()
.
- feature: now we support parsing answer records in all the answer sections (
- upgraded lua-resty-redis to 0.25.
- feature: now this module automatically generate Lua methods for any Redis commands the caller attempts to use. The lazily generated Lua methods are cached in the Lua module table for faster subsequent uses. In theory, any Redis commands in existing Redis or even future Redis servers can work out of the box. thanks spacewander for the patch.
- upgraded ngx_lua_upstream to 0.06.
- feature: added upstream.current_upstream_name() to return the proxy target used in the current request. thanks Justin Li for the patch.
- minor Lua table initialization optimizations from Scott Francis.
- upgraded resty-cli to 0.13.
- bugfix: restydoc: pod2man from older perl versions (like 5.8) does not support
-u
option. we should be smarter here. - bugfix: when resty/restydoc/restydoc-index were invoked through symlinks, they might fail to locate the nginx executable of openresty.
- bugfix: POD errors might get displayed in pod2man with older versions of perl (like perl 5.20.2). thanks Dominic for the patch.
- bugfix: pod2man might abort with a "Can't open file" error with perl 5.24+.
- bugfix: restydoc-index: improved the seciton name normalization for the documentation indexes.
- bugfix: restydoc: pod2man from older perl versions (like 5.8) does not support
- upgraded ngx_echo to 0.60.
- bugfix: fixed compilation failures when specifying the C compiler option
-DDDEBUG=2
. thanks amdei for the report. - bugfix: fixed crashes in
$echo_client_request_headers
for HTTP/2 requests. thanks dilyanpalauzov for the report. Now $echo_client_request_headers always evaluates to an empty value (not found) in HTTP/2 requests. - doc: make it clearer when to use the
--
form.
- bugfix: fixed compilation failures when specifying the C compiler option
- upgraded ngx_headers_more to 0.31.
- bugfix: when the nginx core does not properly initialize
r->headers_in.headers
(due to 400 bad requests and etc), more_set_input_headers might lead to crashes. thanks Marcin Teodorczyk for the report. - bugfix: fixed a typo in an error message. thanks Albert Strasheim for the patch.
- bugfix: when the nginx core does not properly initialize
- upgraded ngx_set_misc to 0.31.
- upgraded ngx_encrypted_session to 0.06.
- doc: we do require ngx_http_ssl_module to work properly.
下載
本站原創,轉載時保留以下信息:
本文轉自:深度開源(open-open.com)
原文地址:http://www.baiduhome.net/news/view/94df8e4
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!