Nginx Upstream Module Versions Save

Tarantool NginX upstream module (REST, JSON API, websockets, load balancing)

v2.7.1

5 years ago

Bugfixes

  • Fixed tnt_pass_http_request unescape option (#120)
  • Fixed tnt_http_rest_methods documentation (#115)

v2.7

5 years ago

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

6 years ago

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: https://github.com/tarantool/nginx_upstream_module/issues/66

Bugs fixed

https://github.com/tarantool/nginx_upstream_module/issues/98 https://github.com/tarantool/nginx_upstream_module/issues/105 https://github.com/tarantool/nginx_upstream_module/issues/108

v2.5-stable

6 years ago

Features

  1. tnt_multireturn_skip_count has returned, for getting details see related issue (https://github.com/tarantool/nginx_upstream_module/issues/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
  1. 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;
}
  1. 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

  2. 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

6 years ago

Features

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

6 years ago

New features

  1. 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;
}
  1. 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

  2. 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

6 years ago

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

6 years ago

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

6 years ago

Bugs fixed

  • Stack has overflowed if number of items in the input JSON more than uint16_t.

v2.4.0-beta

6 years ago

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 (https://github.com/tarantool/nginx_upstream_module/issues/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.