This commit is contained in:
Yichun Zhang (agentzh) 2014-12-07 21:19:38 -08:00
Родитель f9709b6dde
Коммит cd01e7b985
2 изменённых файлов: 87 добавлений и 13 удалений

Просмотреть файл

@ -42,8 +42,6 @@ Table of Contents
* [Mixing with SSI Not Supported](#mixing-with-ssi-not-supported)
* [SPDY Mode Not Fully Supported](#spdy-mode-not-fully-supported)
* [TODO](#todo)
* [Short Term](#short-term)
* [Longer Term](#longer-term)
* [Changes](#changes)
* [Test Suite](#test-suite)
* [Copyright and License](#copyright-and-license)
@ -856,21 +854,58 @@ Certain Lua APIs provided by ngx_lua do not work in Nginx's SPDY mode yet: [ngx.
TODO
====
[Back to TOC](#table-of-contents)
* add `*_by_lua_block` directives for existing `*_by_lua` directives so that we put literal Lua code directly in curly braces instead of an nginx literal string. For example,
```nginx
Short Term
----------
content_by_lua_block {
ngx.say("hello, world\r\n")
}
```
which is equivalent to
```nginx
content_by_lua '
ngx.say("hello, world\\r\\n")
';
```
but the former is much cleaner and nicer.
* cosocket: implement LuaSocket's unconnected UDP API.
* add support for implementing general TCP servers instead of HTTP servers in Lua. For example,
```lua
tcp {
server {
listen 11212;
handler_by_lua '
-- custom Lua code implementing the special TCP server...
';
}
}
```
* add support for implementing general UDP servers instead of HTTP servers in Lua. For example,
```lua
udp {
server {
listen 1953;
handler_by_lua '
-- custom Lua code implementing the special UDP server...
';
}
}
```
* ssl: implement directives `ssl_certificate_by_lua` and `ssl_certificate_by_lua_file` to allow using Lua to dynamically serve SSL certificates and keys for downstream SSL handshake. (already done in CloudFlare's private branch and powering CloudFlare's SSL gateway of its global network. expected to be opensourced in March 2015.)
* shm: implement a "shared queue API" to complement the existing [shared dict](#lua_shared_dict) API.
* cosocket: add support in the context of [init_by_lua*](#init_by_lua).
* cosocket: implement the `bind()` method for stream-typed cosockets.
* cosocket: pool-based backend concurrency level control: implement automatic `connect` queueing when the backend concurrency exceeds its connection pool limit.
* [ngx.re](#ngxrematch) API: use `false` instead of `nil` in the resulting match table to indicate non-existent submatch captures, such that we can avoid "holes" in the array table.
* review and apply Jader H. Silva's patch for `ngx.re.split()`.
* review and apply vadim-pavlov's patch for [ngx.location.capture](#ngxlocationcapture)'s `extra_headers` option
* use `ngx_hash_t` to optimize the built-in header look-up process for [ngx.req.set_header](#ngxreqset_header), [ngx.header.HEADER](#ngxheaderheader), and etc.
* add configure options for different strategies of handling the cosocket connection exceeding in the pools.
* add directives to run Lua codes when nginx stops.
* add `ignore_resp_headers`, `ignore_resp_body`, and `ignore_resp` options to [ngx.location.capture](#ngxlocationcapture) and [ngx.location.capture_multi](#ngxlocationcapture_multi) methods, to allow micro performance tuning on the user side.
[Back to TOC](#table-of-contents)
Longer Term
-----------
* add automatic Lua code time slicing support by yielding and resuming the Lua VM actively via Lua's debug hooks.
* add `stat` mode similar to [mod_lua](https://httpd.apache.org/docs/trunk/mod/mod_lua.html).

Просмотреть файл

@ -700,15 +700,54 @@ Certain Lua APIs provided by ngx_lua do not work in Nginx's SPDY mode yet: [[#ng
= TODO =
== Short Term ==
* add <code>*_by_lua_block</code> directives for existing <code>*_by_lua</code> directives so that we put literal Lua code directly in curly braces instead of an nginx literal string. For example,
<geshi lang="nginx">
content_by_lua_block {
ngx.say("hello, world\r\n")
}
</geshi>
: which is equivalent to
<geshi lang="nginx">
content_by_lua '
ngx.say("hello, world\\r\\n")
';
</geshi>
: but the former is much cleaner and nicer.
* cosocket: implement LuaSocket's unconnected UDP API.
* add support for implementing general TCP servers instead of HTTP servers in Lua. For example,
<geshi lang="lua">
tcp {
server {
listen 11212;
handler_by_lua '
-- custom Lua code implementing the special TCP server...
';
}
}
</geshi>
* add support for implementing general UDP servers instead of HTTP servers in Lua. For example,
<geshi lang="lua">
udp {
server {
listen 1953;
handler_by_lua '
-- custom Lua code implementing the special UDP server...
';
}
}
</geshi>
* ssl: implement directives <code>ssl_certificate_by_lua</code> and <code>ssl_certificate_by_lua_file</code> to allow using Lua to dynamically serve SSL certificates and keys for downstream SSL handshake. (already done in CloudFlare's private branch and powering CloudFlare's SSL gateway of its global network. expected to be opensourced in March 2015.)
* shm: implement a "shared queue API" to complement the existing [[#lua_shared_dict|shared dict]] API.
* cosocket: add support in the context of [[#init_by_lua|init_by_lua*]].
* cosocket: implement the <code>bind()</code> method for stream-typed cosockets.
* cosocket: pool-based backend concurrency level control: implement automatic <code>connect</code> queueing when the backend concurrency exceeds its connection pool limit.
* [[#ngx.re.match|ngx.re]] API: use <code>false</code> instead of <code>nil</code> in the resulting match table to indicate non-existent submatch captures, such that we can avoid "holes" in the array table.
* review and apply Jader H. Silva's patch for <code>ngx.re.split()</code>.
* review and apply vadim-pavlov's patch for [[#ngx.location.capture|ngx.location.capture]]'s <code>extra_headers</code> option
* use <code>ngx_hash_t</code> to optimize the built-in header look-up process for [[#ngx.req.set_header|ngx.req.set_header]], [[#ngx.header.HEADER|ngx.header.HEADER]], and etc.
* add configure options for different strategies of handling the cosocket connection exceeding in the pools.
* add directives to run Lua codes when nginx stops.
* add <code>ignore_resp_headers</code>, <code>ignore_resp_body</code>, and <code>ignore_resp</code> options to [[#ngx.location.capture|ngx.location.capture]] and [[#ngx.location.capture_multi|ngx.location.capture_multi]] methods, to allow micro performance tuning on the user side.
== Longer Term ==
* add automatic Lua code time slicing support by yielding and resuming the Lua VM actively via Lua's debug hooks.
* add <code>stat</code> mode similar to [https://httpd.apache.org/docs/trunk/mod/mod_lua.html mod_lua].