# Ngx\_openresty 1.0.8.26 (stable) released

**URL:** <https://www.ruby-forum.com/t/ngx-openresty-1-0-8-26-stable-released/213482>\
**Category:** NGINX\
**Created:** [November 3, 2011, 10:34am UTC](https://www.ruby-forum.com/t/ngx-openresty-1-0-8-26-stable-released/213482 "2011-11-03T10:34:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [November 3, 2011, 10:34am UTC](https://www.ruby-forum.com/t/ngx-openresty-1-0-8-26-stable-released/213482/1 "2011-11-03T10:34:53Z")

</div>

Hi, folks!

I’m happy to announce that the new stable release of ngx\_openresty,  
1.0.8.26, has just been kicked out of door:

[OpenResty® - Open source](http://openresty.org/#Download)

This is the first stable release of ngx\_openresty that is based on the  
Nginx core 1.0.8. And this is a big release with a _lot_ of bug fixes  
and  
new features.

Special thanks go to all our contributors and users to help make this  
happen over the last month 🙂

Here goes the complete change log for this release, as compared to the  
last  
stable release, 1.0.6.22, released nearly a month ago:

- upgraded the Nginx core to 1.0.8.
- upgraded LuaNginxModule to 0.3.1rc23.
  - feature: added new directive lua\_shared\_dict:  
[Lua | NGINX](http://wiki.nginx.org/HttpLuaModule#lua_shared_dict)
  - feature: added Lua API for the shm-based dictionary:  
[Lua | NGINX](http://wiki.nginx.org/HttpLuaModule#ngx.shared.DICT)
  - feature: now we apply the patch to the nginx core so as to allow  
main request body modifications.
  - feature: added new Lua API ngx.req.set\_body\_file():  
[Lua | NGINX](http://wiki.nginx.org/HttpLuaModule#ngx.req.set_body_file)
  - feature: added new Lua API ngx.req.set\_body\_data():  
[Lua | NGINX](http://wiki.nginx.org/HttpLuaModule#ngx.req.set_body_data)
  - feature: added new Lua functions ngx.req.read\_body(),  
ngx.req.discard\_body(), ngx.req.get\_body\_data(), and  
ngx.req.get\_body\_file(). see the docs here:  
[Lua | NGINX](http://wiki.nginx.org/HttpLuaModule#ngx.req.read_body)
  - feature: now we implemented ngx.req.set\_uri() and  
ngx.req.set\_uri\_args() to emulate ngx\_rewrite’s rewrite directive  
(without redirect or permanent modifiers). thanks Vladimir  
Protasov  
(utros) and Nginx U…
  - feature: added constant ngx.HTTP\_METHOD\_NOT\_IMPLEMENTED (501).  
thanks Nginx U…
  - feature: now for HTTP 1.0 requests, we disable the automatic  
full  
buffering mode if the user sets the Content-Length response header  
before sending out the headers. this allows streaming output for  
HTTP 1.0  
requests if the content length can be calculated beforehand.  
thanks Li Ziyi.
  - bugfix: now we properly support setting the Cache-Control  
response  
header via the ngx.header.HEADER interface.
  - bugfix: no longer set header hash to 1. use the  
ngx\_hash\_key\_lcinstead.
  - bugfix: now we skip rewrite phase Lua handlers altogether if  
ngx\_rewrite’s rewrite directive issue a location re-lookup by  
changing URIs (but not including rewrite … break). thanks Nginx  
User.
  - bugfix: fixed hanging issues when using ngx.exec() within  
rewrite\_by\_lua and access\_by\_lua. thanks Nginx U. for reporting  
it.
  - bugfix: lua\_need\_request\_body should not skip requests with  
methods  
other than POST and PUT. thanks Nginx U…
  - bugfix: ndk.set\_var.DIRECTIVE had a memory issue and might pass  
empty argument values to the directive being called. thanks  
dannynoonan.
  - bugfix: no longer free request body buffers that are not  
allocated  
by ourselves.
  - bugfix: now we allow setting ngx.var.VARIABLE to nil.
  - bugfix: now we explicitly clear all the modules’ contexts before  
dump to named location with ngx.exec. thanks Nginx U…

- upgraded EchoNginxModule to 0.37rc7.
  - bugfix: fixed a memory issue in both echo\_sleep and  
echo\_blocking\_sleep: we should not pass ngx\_str\_t strings to  
atof()which expects C strings.
  - bugfix: now we explicitly clear all the modules’ contexts before  
dump to named location with echo\_exec.
  - bugfix: bugfix: echo\_exec may hang when running after  
echo\_sleep(or other I/O interruption calls): we should have called  
ngx\_http\_finalize\_request on NGX\_DONE to decrement  
r-\>main-\>countanyway.
  - bugfix: now we properly set the Content-Length request header  
for  
subrequests.

- upgraded SrcacheNginxModule to 0.13rc2.
  - feature: implemented response status line and general response  
header cachin and added new directives srcache\_store\_hide\_header  
and  
srcache\_store\_pass\_header to control which headers to cache and  
which  
not.
  - feature: added new directive srcache\_response\_cache\_control to  
control whether honor response headers Cache-Control and Expires,  
default on.
  - feature: we disable srcache\_store automatically by default  
when Cache-Control:  
max-age=0 and Expires: are seen.
  - feature: implemented builtin nginx variable $srcache\_expire for  
automatic expiration time calculation based on response headers  
Cache-Control (max-age) and Expires; also added new directives  
srcache\_max\_expire and srcache\_default\_expire.
  - feature: implemented the srcache\_store\_no\_cache directive; now  
by  
default, we do not store responses with the header Cache-Control:  
no-cache into the cache.
  - feature: implemented the srcache\_store\_no\_store directive  
(default  
off). Now by default, responses with the header Cache-Control:  
no-store will not be stored into the cache.
  - feature: implemented the srcache\_store\_private directive to  
control  
whether to store responses with the header Cache-Control: private.
  - feature: implemented the srcache\_request\_cache\_control directive  
to  
allow request headers Cache-Control: no-cache or Pragma: no-cache  
to  
force bypassing cache lookup. it also honors the request header  
Cache-Control:  
no-store. this directive is turned off by default.
  - feature: now we check response header Content-Encoding by  
default  
and a non-empty header value will skip srcache\_store; also  
introduced  
a new directive named srcache\_ignore\_content\_encoding to ignore  
this  
response header.
  - feature: implemented the srcache\_methods directive to specify  
request methods that are cacheable, by default, only GET and HEAD  
are  
cacheable.
  - bugfix: we no longer set header hash to 1; we use  
ngx\_hash\_key\_lcinstead.
  - bugfix: when we skip srcache\_fetch by means of  
srcache\_fetch\_skip,  
we should not automatically skip srcache\_store.
  - bugfix: now we ignore the Content-Length header (if any) of the  
main request for the subrequests.
  - bugfix: there might be a segfault when failing to allocate  
memory  
in ngx\_http\_srcache\_add\_copy\_chain. thanks Shaun savage.
  - feature: implemented new directive srcache\_store\_statuses to  
allow  
the user to specify the response status code list that is to be  
stored into  
the cache.
  - bugfix: we now only cache 200, 301, and 302 responses by  
default.

- upgraded IconvNginxModule to 0.10rc5.
  - bugfix: fixed -Wset-but-not-used warnings issued by gcc 4.6.0.  
thanks Zhi Jiale (Calio).

- upgraded HeadersMoreNginxModule to 0.16rc3.
  - bugfix: we should set header hash using ngx\_hash\_key\_lc, not  
simply  
to 1.
  - bugfix: fixed setting Cache-Control response headers. we should  
properly prepare the r-\>cache\_control array as well.

- upgraded RdsJsonNginxModule to 0.12rc6.
  - bugfix: fixed compatibility with nginx 1.1.4+.

- upgraded RdsCsvNginxModule to 0.04.
  - bugfix: fixed compatibility issues with nginx 1.1.4+.
  - optimization: now we only register our filters when rds\_csv is  
actually used in nginx.conf.

- upgraded Redis2NginxModule to 0.08rc1.
  - bugfix: fixed compatibility with nginx 1.1.4+.

- upgraded DrizzleNginxModule to 0.1.2rc2.
  - bugfix: fixed compatibility with nginx 1.1.4+

- upgraded MemcNginxModule to 0.13rc1.
  - bugfix: fixed compatibility with nginx 1.1.4+.

- upgraded SetMiscNginxModule to v0.22rc3.
  - minor code cleanup.

- applied the patch to the Nginx core that always clears all modules’  
contexts in ngx\_http\_named\_location.
- applied the patch for the variable-header-ignore-no-hash issue. see  
[[PATCH] Ignore response header entries with zero hash in ngx\_http\_varaible\_headers](http://forum.nginx.org/read.php?29,216062) for details.

As always, you’re welcome to report bugs and feature requests either  
here  
or directly to me 🙂

It’ll also be highly appreciated to try out the devel releases (based on  
the Nginx core 1.0.9+) that are coming out later 😉

OpenResty (aka. ngx\_openresty) is a full-fledged web application server  
by  
bundling the standard Nginx core, lots of 3rd-party Nginx  
modules[http://wiki.nginx.org/3rdPartyModules](http://wiki.nginx.org/3rdPartyModules),  
as well as most of their external dependencies.

By taking adantage of various well-designed Nginx modules, OpenResty  
effectively turns the nginx server into a powerful web app server, in  
which  
the web developers can use the Lua programming language to script  
various  
existing nginx C modules and Lua modules and construct extremely  
high-performance web applications that is capable to handle 10K+  
connections.

OpenResty aims to run your server-side web app completely in the Nginx  
server, leveraging Nginx’s event model to do non-blocking I/O not only  
with  
the HTTP clients, but also with remote backends like MySQL, PostgreSQL,  
Memcached, and Redis.

You can find more details on the homepage of ngx\_openresty here:

```
http://openresty.org

```

Have fun!  
-agentzh

---

<div class="post-metadata">

**Author:** ![agentzh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/4da419/32.png) [@agentzh](https://www.ruby-forum.com/u/agentzh)\
**Post date:** [November 3, 2011, 2:40pm UTC](https://www.ruby-forum.com/t/ngx-openresty-1-0-8-26-stable-released/213482/2 "2011-11-03T14:40:13Z")

</div>

Great!!

2011/11/3 agentzh [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
