Releases: tarantool/nginx_upstream_module
v2.7.1
v2.7
Features
The version has a new option pass_subrequest_uri
for tnt_pass_http_request
config directive.
Previous implementation unconditionally passes unparsed uri, recieved from client. However it can be changed due to several internal redirects, such as rewrite
, X-Accel-Redirect
, etc. If the new option for tnt_pass_http_request
is set, the actual subrequest uri will be passed to tarantool upstream.
Default behaviour coincides with the old one for saving backward compatibility.
You can find more information and examples into the README
v2.6-rc3
Features
The version has a new features, it called 'format' or tarantool protocol over REST.
Tarantool stores data in tuples. A tuple is a list of elements. Each element is a value or an object, and each element should have a strong type. The tuple format is called MsgPack, it's like JSON in a binary format.
The main goal of Format (see [FMT] above) is to enable conversion between
a query string and MsgPack without losing type information or value.
The syntax is: {QUERY_ARG_NAME}=%{FMT_TYPE}
Please look carefully for yours url encoding!
You can find more information into the README.md.
A related issue: #66
Bugs fixed
v2.5-stable
Features
- tnt_multireturn_skip_count has returned, for getting details see related issue (#97)
syntax: tnt_multireturn_skip_count [0|1|2]
default: 0
context: http, server, location
Module will skip one or more multireturn parts when this option is > 0 When it is set to 0
- tnt_method can work with nginx's variables, here is a short example:
location ~ /api/([-_a-zA-Z0-9/]+)/ {
tnt_method $1;
tnt_pass backend:3113;
}
-
tnt_pass_http_request has a new option, it's parse_urlencoded. This option make nginx parse incoming x-www-urlencoded data into the Lua table. Here is details: https://github.com/tarantool/nginx_upstream_module#tnt_pass_http_request
-
tnt_set_header, it's a new option. it allows redefining or appending fields to the request header passed to the tarantool proxied server. The value can contain text, variables, and their combinations.
v2.5-rc2
Features
- tnt_multireturn_skip_count has returned, for getting details see related issue (#97)
syntax: tnt_multireturn_skip_count [0|1|2]
default: 0
context: http, server, location
Module will skip one or more multireturn parts when this option is > 0 When it is set to 0
v2.5-rc1
New features
- tnt_method can work with nginx's variables, here is a short example:
location ~ /api/([-_a-zA-Z0-9/]+)/ {
tnt_method $1;
tnt_pass backend:3113;
}
-
tnt_pass_http_request has a new option, it's parse_urlencoded. This option make nginx parse incoming x-www-urlencoded data into the Lua table. Here is details: https://github.com/tarantool/nginx_upstream_module#tnt_pass_http_request
-
tnt_set_header, it's a new option. it allows redefining or appending fields to the request header passed to the tarantool proxied server. The value can contain text, variables, and their combinations.
v2.4.6-rc1
Changelist
- tnt_eval has been removed, since it does not work well. It was replaced by ngx_lua and so on, that means this module is optimized for an other nginx's modules like ngx_lua, ngx_perl and so on.
- tnt_pure_result is back. Reply can be filtered by ngx_lua or ngx_perl.
- Module has been optimised for working with ngx_lua, ngx_perl and so on.
v2.4.5-beta
Bugs fixed
tnt_eval
- it works only with HTTP GET. this wrong behaviour was fixed.
- Upstream status does not passed to the client. That means that client does not seen any upstream issues, like codes 502, 500.
This was fixed.
tnt_pass
- Double json output can be recived by client if tarantool's upstream is dead. This was fixed.
v2.4.2-beta
Bugs fixed
- Stack has overflowed if number of items in the input JSON more than uint16_t.
v2.4.0-beta
Breaking changes
-
Module reply has been changed. Now it does not returns 'result', it returns a raw result only.
-
Module does not support experemental flags tnt_pure_result and tnt_multireturn_skip_count.
-
Module does not support tarantool 1.6.*; it supports only 1.7.+.
New features
- tnt_eval (#74).
This directive put execution of tnt_pass into the nginx REWRITE PHASE. That exactly this mean? That means that you can have a access to the body (in for of JSON), http codes and http headers which have been passed from the Tarantool to the nginx inside nginx config. This very useful for setting custom HTTP statuses, headers and for post-processing of the original body.
Even more, you can use this for using this module with OpenResty, Nginx Script, Nginx Perl and so on.