Cheers!<br><br><div class="gmail_quote">On Tue, Jul 5, 2011 at 1:33 PM, agentzh <span dir="ltr">&lt;<a href="mailto:agentzh@gmail.com">agentzh@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi, folks!<br>
<br>
After 5 months&#39; active development, the ngx_lua module v0.2.0 release<br>
is now finally released:<br>
<br>
&nbsp; &nbsp;<a href="https://github.com/chaoslawful/lua-nginx-module/downloads" target="_blank">https://github.com/chaoslawful/lua-nginx-module/downloads</a><br>
<br>
This release contains lots of bug fixes as well as some new features.<br>
Many many thanks go to all our users and contributors worldwide,<br>
especially moodydeath :)<br>
<br>
The ngx_lua module embeds the Lua/LuaJIT interpreter into the nginx<br>
core and integrates the powerful Lua threads (aka Lua coroutines) into<br>
the nginx event model by means of nginx subrequests.<br>
<br>
You can get the latest source code and full documentation from the<br>
ngx_lua&#39;s project page:<br>
<br>
&nbsp; <a href="https://github.com/chaoslawful/lua-nginx-module/" target="_blank">https://github.com/chaoslawful/lua-nginx-module/</a><br>
<br>
This module is now included in our ngx_openresty bundle: <a href="http://openresty.org/" target="_blank">http://openresty.org/</a><br>
<br>
Here goes the complete change log for this release:<br>
<br>
* now we support ngx.var[1], ngx.var[2], and etc to refer to the nginx<br>
regex capturing variables \$1, \$2, and etc in Lua. this resolved<br>
github issue #43. thanks Tobia Conforto for reporting it.<br>
<br>
* now we use the same value overriding mechanism as ngx_rewrite&#39;s set<br>
command for ngx.var.VAR = new_value. Assigning values to special<br>
variables like $limit_rate and $args should now work; also writing to<br>
built-in variables that are not changeable (like $arg_PARAMETER) will<br>
result in a 500 error page, as expected, now. thanks Richard Kearsley<br>
for reporting it.<br>
<br>
* fixed the lua_code_cache off warning when the lua_code_cache is<br>
explicitly on. thanks Feng Xingguo.<br>
<br>
* applied the patch from cyberty to add ngx.http_time() function to<br>
expose the nginx core function ngx_http_time to the Lua land.<br>
<br>
* fixed an issue on i386: we now use off_t consistently. mixing it<br>
with size_t on 32-bit systems can cause Bad Things. this fixed github<br>
issue #42. thanks moodydeath.<br>
<br>
* fixed an issue on i386: fixed a formatter mismatch issue in<br>
ngx_http_echo_adjust_subrequest. thanks Wang Bin. This caused<br>
incorrect subrequest Content-Length header when a body is specified.<br>
<br>
* now in the subrequest capturing processor, we worked around an issue<br>
in ngx_http_static_module that when it issues 301 redirect for<br>
directory access w/o a trailing slash, it does not inject<br>
r-&gt;headers_out.location into the r-&gt;headers_out.headers list. thanks<br>
moodydeath for reporting it in the discussion of github issue #41.<br>
<br>
* fixed a bug in ngx.location.capture() and<br>
ngx.location.capture_multi() that we could not capture locations with<br>
internal redirections in them. thanks moodydeath for reporting it in<br>
github issue #41.<br>
<br>
* fixed redundant last chunk issue for ngx.exec() invocation at<br>
rewrite and access phases: we should quit the current core_run_phases<br>
cycle; this also fixed github issue #40: 2 Subrequest calls when using<br>
access_by_lua, ngx.exec and echo_location.<br>
<br>
* fixed ngx.exit(status) where status &gt;= 200 and status &lt; 300 for<br>
access_by_lua* and rewrite_by_lua*: it should quit the whole request<br>
altegother and skip all those subsequent phase handlers (if any).<br>
thanks moodydeath for reporting it.<br>
<br>
* fixed github issue #39: setting differnt response headers in Lua<br>
with common prefix might interfere with each other. thanks moodydeath.<br>
<br>
* fixed GitHub issue #38: request headers did not forward to<br>
subrequests when the &quot;method&quot; or &quot;body&quot; option is explicitly specified<br>
by a non-nil value for ngx.location.capture(). thanks Richard<br>
Kearsley.<br>
<br>
* fixed a bug in output header set; we should always set the<br>
header-&gt;hash to 1. thanks moodydeath for reporting it.<br>
<br>
* fixed spots that trigger the &quot;variable set but not used&quot; warning<br>
issued by gcc 4.6.0.<br>
<br>
* now we turn the ngx.req.header table into an ngx.req.get_headers()<br>
function; we also added ngx.req.set_header(name, value) and<br>
ngx.req.clear_header(name). thanks moodydeath.<br>
<br>
* now we make ngx_devel_kit (NDK) optional. thanks Kirill A. Korinskiy.<br>
<br>
* removed a duplicate definition of the ngx_str_set macro caught by<br>
ctags; also fixed a warning thrown by gcc -O3 on Mac OS X 10.6.<br>
<br>
* added patch to use PCRE related Lua extensions in ngx_lua (chaoslawful)<br>
<br>
* now we change the way we process HTTP 1.0 requests by automatically<br>
buffering all the user outputs generated by ngx.print()/ngx.say()<br>
calls, which is much more natural than the old broken way.<br>
<br>
* fixed the &quot;ngx.exec() after ngx.location.capture() hanging&quot; bug for<br>
rewrite_by_lua* and access_by_lua* as well. thanks Wendal Chen.<br>
<br>
* applied a patch from moodydeath to introduce the &quot;ngx.is_subrequest&quot;<br>
attribute.<br>
<br>
* now we encourage use of the client_body_in_single_buffer directive<br>
instead of big client_body_buffer_size when lua_need_request_body is<br>
turned on.<br>
<br>
* fixed the config script and added extra linking options needed by<br>
LuaJIT in 64-bit Mac OS X.<br>
<br>
* fixed the zero size alert caused by ngx.print(&quot;&quot;) in Lua.<br>
<br>
* now we always allocate r-&gt;request_body for subrequests when the<br>
method option is specified for ngx.location.capture*. this prevents<br>
accidental inheritance of parent request&#39;s request body when<br>
client_body_buffer_size &lt; client_max_body_size.<br>
<br>
Enjoy!<br>
-agentzh<br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://nginx.org/mailman/listinfo/nginx" target="_blank">http://nginx.org/mailman/listinfo/nginx</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><font face="Verdana" size="2"><div><font face="Verdana" size="2"><div><font face="微软雅黑" size="2"><font color="#333333">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;致<br>
礼!<br><br>肖云朋<br>网易网站部产品技术中心</font></font></div><div><font face="微软雅黑" size="2"><font color="#333333">分机:8214<br>直拨:010 82558214<br>邮箱:<a href="http://goog_1029224550" target="_blank">ypxiao</a></font></font><font face="微软雅黑" size="2"><a href="http://@corp.netease.com" target="_blank"><font color="#333333">@corp.netease.com</font></a></font><font color="#333333"><br>
</font><font face="微软雅黑" size="2"><font color="#333333">地址:北京市海淀区中关村东路清华科技园科技大厦D座27层</font><br><font color="#C0C0C0">邮编:100084</font></font></div></font></div></font></span><br>