高性能 Web 平台 OpenResty v1.11.2.1 发布
jopen 8年前
<p style="text-align:center"><img alt="" src="https://simg.open-open.com/show/376b281b363f1d680abe171c87bbcb53.jpg" /></p> <p>OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。</p> <p> </p> <p>OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。</p> <p> </p> <p>OpenResty 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。</p> <p style="text-align:center"><img alt="" src="https://simg.open-open.com/show/3a8e45dde239a18bc97a8524f9dd217b.png" /></p> <h2>更新日志</h2> <ul> <li>upgraded the <a href="/misc/goto?guid=4958993389596333579">Nginx</a> core to 1.11.2. <ul> <li>see the changes here: <a href="/misc/goto?guid=4958186202159580904">http://nginx.org/en/CHANGES</a></li> </ul> </li> <li>feature: bundled the sess_set_get_cb_yield patch for OpenSSL to support the <a href="/misc/goto?guid=4958993389757441971">ssl_session_fetch_by_lua*</a> directives of <a href="/misc/goto?guid=4958993389899327717">ngx_lua</a>.</li> <li>win32: we now use pcre 8.39 and openssl 1.0.2h in our official build.</li> <li>feature: applied the <code>ssl_pending_session.patch</code> to the <a href="/misc/goto?guid=4958993389596333579">nginx</a> core to support the <a href="/misc/goto?guid=4958993389757441971">ssl_session_fetch_by_lua*</a> and <a href="/misc/goto?guid=4958993390064577105">ssl_session_store_by_lua*</a> in <a href="/misc/goto?guid=4958993389899327717">ngx_lua</a>.</li> <li>feature: added <code><openresty-prefix>/site/lualib/</code> 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 <code><openresty-prefix>/lualib/</code> directory with non-standard Lua module files.</li> <li>feature: now we create the <code><openresty-prefix>/bin/openresty</code> symlink which points to <code><openresty-prefix>/nginx/sbin/nginx</code> to avoid polluting the <code>PATH</code>environment with the name "nginx".</li> <li>feature: added the <code>upstream_timeout_fields</code> patch to the <a href="/misc/goto?guid=4958993389596333579">nginx</a> core to allow efficient per-request connect/send/read timeout settings for individual upstream requests and retries.</li> <li>feature: added the official LuaJIT documentation from LuaJIT 2.1 to our <code>restydoc</code> indexes.</li> <li>feature: added the Lua 5.1 reference manual from lua 5.1.5 to our restydoc indexes.</li> <li>bugfix: special characters like spaces in <a href="/misc/goto?guid=4958993389596333579">nginx</a> configure option values (like <code>--with-pcre-opt</code> and <code>--with-openssl-opt</code>) were not passed correctly. thanks Andreas Lubbe for the report.</li> <li>change: now we use our own version of default <code>index.html</code> and <code>50x.html</code> pages.</li> <li>upgraded <a href="/misc/goto?guid=4958993389899327717">ngx_lua</a> to 0.10.6. <ul> <li>feature: added new shdict methods: <a href="/misc/goto?guid=4958993390260471133">lpush</a>, <a href="/misc/goto?guid=4958993390394479351">lpop</a>, <a href="/misc/goto?guid=4958993390527080670">rpush</a>, <a href="/misc/goto?guid=4958993390648983802">rpop</a>, <a href="/misc/goto?guid=4958993390786528216">llen</a> 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.</li> <li>feature: implemented <a href="/misc/goto?guid=4958993389757441971">ssl_session_fetch_by_lua*</a> and <a href="/misc/goto?guid=4958993390064577105">ssl_session_store_by_lua*</a> configuration directives for doing (distributed) caching of SSL sessions (via SSL session IDs) for downstream connections. thanks Zi Lin for the patches.</li> <li>feature: added pure C API for setting upstream request connect/send/read timeouts in <a href="/misc/goto?guid=4958993390956540943">balancer_by_lua*</a> on a per session basis. thanks Jianhao Dai for the original patch.</li> <li>feature: ssl: add <a href="/misc/goto?guid=4958993391081707470">FFI</a> functions to parse certs and private keys to cdata. With the current <a href="/misc/goto?guid=4958993391081707470">FFI</a> 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.</li> <li>feature: <a href="/misc/goto?guid=4958993391232522778">shdict:incr()</a>: added the optional <code>init</code> argument to allow intializing nonexistent keys with an initial value.</li> <li>feature: allow <a href="/misc/goto?guid=4958976214061621226">tcpsock:setkeepalive()</a> to receive nil args. thanks Thibault Charbonnier for the patch.</li> <li>bugfix: <code>*_by_lua_file</code>: did not support absolute file paths on non-UNIX systems like Win32. thanks Someguynamedpie for the report and the original patch.</li> <li>bugfix: fake connections did not carry a proper connection number. thanks Piotr Sikora for the patch.</li> <li>bugfix: "lua_check_client_abort on" broke HTTP/2 requests.</li> <li>bugfix: <code>ngx_http_lua_ffi_ssl_create_ocsp_request</code>: we did not clear the openssl stack errors in the right place.</li> <li>bugfix: <a href="/misc/goto?guid=4958993391400466972">ngx.sha1_bin()</a> was always disabled with <a href="/misc/goto?guid=4958993389596333579">nginx</a> 1.11.2+ due to incompatible changes in <a href="/misc/goto?guid=4958993389596333579">nginx</a> 1.11.2+. thanks manwe for the report.</li> <li>bugfix: segfaults might happen when calling <a href="/misc/goto?guid=4958993391567242067">ngx.log()</a> in <a href="/misc/goto?guid=4958993391689024031">ssl_certificate_by_lua*</a> and error_log was configured with syslog. thanks Jonathan Serafini and Greg Karékinian for the report.</li> <li>bugfix: fixed a typo in the error handling of the <code>SSL_get_ex_new_index()</code> call for our ssl ctx index. thanks Jie Chen for the report.</li> <li>bugfix: when the <a href="/misc/goto?guid=4958993389596333579">nginx</a> core does not properly initialize <code>r->headers_in.headers</code> (due to 400 bad requests and etc), <a href="/misc/goto?guid=4958972566816961381">ngx.req.set_header()</a> and<a href="/misc/goto?guid=4958972567035150425">ngx.req.clear_header()</a> might lead to crashes. thanks Marcin Teodorczyk for the report.</li> <li>bugfix: fixed crashes in <a href="/misc/goto?guid=4958857007313088953">ngx.req.raw_header()</a> for HTTP/2 requests. now we always throw out a Lua exception in <a href="/misc/goto?guid=4958857007313088953">ngx.req.raw_header()</a> when being called in HTTP/2 requests.</li> <li>bugfix: specifying the C macro <code>NGX_LUA_NO_FFI_API</code> broke the build. thanks jsopenrb for the report.</li> <li>doc: <a href="/misc/goto?guid=4958976213062695394">ngx.worker.count()</a> is available in the <a href="/misc/goto?guid=4958857006458282445">init_worker_by_lua*</a> context.</li> <li>doc: documented that <a href="/misc/goto?guid=4958857007313088953">ngx.req.raw_header()</a> does not work in HTTP/2 requests.</li> <li>doc: typo fixes from Otto Kekäläinen and Nick Galbreath.</li> </ul> </li> <li>upgraded <a href="/misc/goto?guid=4958993392084133562">lua-resty-core</a> to 0.1.8. <ul> <li>updated the <code>resty.core.shdict</code> Lua module to reflect the recent addition of list-typed shdict values in <a href="/misc/goto?guid=4958993389899327717">ngx_lua</a>.</li> <li>feature: <a href="/misc/goto?guid=4958993391232522778">shdict:incr()</a>: added the optional <code>init</code> argument to allow intializing nonexistent keys with an initial value.</li> <li>feature: added the <a href="/misc/goto?guid=4958993392230567061">ngx.ssl.session</a> module for the contexts <a href="/misc/goto?guid=4958993389757441971">ssl_session_fetch_by_lua*</a> and <a href="/misc/goto?guid=4958993390064577105">ssl_session_store_by_lua*</a>. thanks Zi Lin for the patches.</li> <li>feature: <a href="/misc/goto?guid=4958993392374389014">ngx.balancer</a>: added new API functions <a href="/misc/goto?guid=4958993392481133065">set_timeouts()</a> for setting per-session connect/send/read timeouts for the current upstream request and subsequent retries. thanks Jianhao Dai for the patch.</li> <li>feature: <a href="/misc/goto?guid=4958993392581119264">ngx.ssl</a>: add new API functions <a href="/misc/goto?guid=4958993392701611427">parse_pem_cert()</a>, <a href="/misc/goto?guid=4958993392807226354">parse_pem_priv_key()</a>, <a href="/misc/goto?guid=4958993392912324221">set_cert()</a>, and <a href="/misc/goto?guid=4958993393018982200">set_priv_key()</a>. thanks Alessandro Ghedini for the patch.</li> </ul> </li> <li>upgraded <a href="/misc/goto?guid=4958993393128570368">lua-resty-dns</a> to 0.17. <ul> <li>feature: now we support parsing answer records in all the answer sections (<code>AN</code>, <code>NS</code>, and <code>AR</code>). thanks Zekai Zheng for the patch.</li> <li>optimize: commented out 3 lines of useless Lua code in <code>parse_response()</code>.</li> </ul> </li> <li>upgraded <a href="/misc/goto?guid=4958993393232961377">lua-resty-redis</a> to 0.25. <ul> <li>feature: now this module automatically generate Lua methods for <em>any</em> 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.</li> </ul> </li> <li>upgraded <a href="/misc/goto?guid=4958993393340071597">ngx_lua_upstream</a> to 0.06. <ul> <li>feature: added <a href="/misc/goto?guid=4958993393452087139">upstream.current_upstream_name()</a> to return the proxy target used in the current request. thanks Justin Li for the patch.</li> <li>minor Lua table initialization optimizations from Scott Francis.</li> </ul> </li> <li>upgraded <a href="/misc/goto?guid=4958993393564004329">resty-cli</a> to 0.13. <ul> <li>bugfix: restydoc: pod2man from older perl versions (like 5.8) does not support <code>-u</code> option. we should be smarter here.</li> <li>bugfix: when resty/restydoc/restydoc-index were invoked through symlinks, they might fail to locate the <a href="/misc/goto?guid=4958993389596333579">nginx</a> executable of openresty.</li> <li>bugfix: POD errors might get displayed in pod2man with older versions of perl (like perl 5.20.2). thanks Dominic for the patch.</li> <li>bugfix: pod2man might abort with a "Can't open file" error with perl 5.24+.</li> <li>bugfix: restydoc-index: improved the seciton name normalization for the documentation indexes.</li> </ul> </li> <li>upgraded <a href="/misc/goto?guid=4958993393677741423">ngx_echo</a> to 0.60. <ul> <li>bugfix: fixed compilation failures when specifying the C compiler option <code>-DDDEBUG=2</code>. thanks amdei for the report.</li> <li>bugfix: fixed crashes in <code>$echo_client_request_headers</code> 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.</li> <li>doc: make it clearer when to use the <code>--</code> form.</li> </ul> </li> <li>upgraded <a href="/misc/goto?guid=4958993393791935968">ngx_headers_more</a> to 0.31. <ul> <li>bugfix: when the <a href="/misc/goto?guid=4958993389596333579">nginx</a> core does not properly initialize <code>r->headers_in.headers</code> (due to 400 bad requests and etc), <a href="/misc/goto?guid=4958976214350460739">more_set_input_headers</a> might lead to crashes. thanks Marcin Teodorczyk for the report.</li> <li>bugfix: fixed a typo in an error message. thanks Albert Strasheim for the patch.</li> </ul> </li> <li>upgraded <a href="/misc/goto?guid=4958993393945781639">ngx_set_misc</a> to 0.31. <ul> <li>bugfix: the <a href="/misc/goto?guid=4958993394058048919">set_sha1</a> directive is always disabled when working with <a href="/misc/goto?guid=4958993389596333579">nginx</a> 1.11.2+ due to recent changes in the new <a href="/misc/goto?guid=4958993389596333579">nginx</a> cores.</li> </ul> </li> <li>upgraded <a href="/misc/goto?guid=4958993394198674991">ngx_encrypted_session</a> to 0.06. <ul> <li>doc: we do require <a href="/misc/goto?guid=4958993394309569609">ngx_http_ssl_module</a> to work properly.</li> </ul> </li> </ul> <h2>下载</h2> <ul> <li><a href="/misc/goto?guid=4958993394420992577" rel="nofollow"><strong>openresty-1.11.2.1.tar.gz</strong></a></li> <li><a href="/misc/goto?guid=4958993394524569134" rel="nofollow"><strong>Source code</strong> (zip)</a></li> <li><a href="/misc/goto?guid=4958993394629161676" rel="nofollow"><strong>Source code</strong> (tar.gz)</a></li> </ul> <p><img src="file:///C:/Users/wqm/AppData/Local/Temp/enhtmlclip/Image(9).png" />本站原创,转载时保留以下信息:<br /> 本文转自:深度开源(open-open.com)<br /> 原文地址:<a href="http://www.open-open.com/news/view/94df8e4">http://www.open-open.com/news/view/94df8e4</a></p>