diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2018-03-17 23:04:24 +0300 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2018-03-17 23:04:24 +0300 |
commit | 56ad960e7a3d4cf16c03ff231616a76c4834e548 (patch) | |
tree | da709e2fc112899539b8ba2727ef78c7fe177507 /auto | |
parent | c67124190c9caf42c9d63b889945f73ccafa3ac6 (diff) |
The gRPC proxy module.
The module allows passing requests to upstream gRPC servers.
The module is built by default as long as HTTP/2 support is compiled in.
Example configuration:
grpc_pass 127.0.0.1:9000;
Alternatively, the "grpc://" scheme can be used:
grpc_pass grpc://127.0.0.1:9000;
Keepalive support is available via the upstream keepalive module. Note
that keepalive connections won't currently work with grpc-go as it fails
to handle SETTINGS_HEADER_TABLE_SIZE.
To use with SSL:
grpc_pass grpcs://127.0.0.1:9000;
SSL connections use ALPN "h2" when available. At least grpc-go works fine
without ALPN, so if ALPN is not available we just establish a connection
without it.
Tested with grpc-c++ and grpc-go.
Diffstat (limited to 'auto')
-rw-r--r-- | auto/modules | 11 | ||||
-rw-r--r-- | auto/options | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/auto/modules b/auto/modules index a10c42d1e..73a9bae9b 100644 --- a/auto/modules +++ b/auto/modules @@ -744,6 +744,17 @@ if [ $HTTP = YES ]; then . auto/module fi + if [ $HTTP_GRPC = YES -a $HTTP_V2 = YES ]; then + ngx_module_name=ngx_http_grpc_module + ngx_module_incs= + ngx_module_deps= + ngx_module_srcs=src/http/modules/ngx_http_grpc_module.c + ngx_module_libs= + ngx_module_link=$HTTP_GRPC + + . auto/module + fi + if [ $HTTP_PERL != NO ]; then ngx_module_name=ngx_http_perl_module ngx_module_incs=src/http/modules/perl diff --git a/auto/options b/auto/options index 24c2618b2..25357412c 100644 --- a/auto/options +++ b/auto/options @@ -86,6 +86,7 @@ HTTP_PROXY=YES HTTP_FASTCGI=YES HTTP_UWSGI=YES HTTP_SCGI=YES +HTTP_GRPC=YES HTTP_PERL=NO HTTP_MEMCACHED=YES HTTP_LIMIT_CONN=YES @@ -262,6 +263,7 @@ $0: warning: the \"--with-ipv6\" option is deprecated" --without-http_fastcgi_module) HTTP_FASTCGI=NO ;; --without-http_uwsgi_module) HTTP_UWSGI=NO ;; --without-http_scgi_module) HTTP_SCGI=NO ;; + --without-http_grpc_module) HTTP_GRPC=NO ;; --without-http_memcached_module) HTTP_MEMCACHED=NO ;; --without-http_limit_conn_module) HTTP_LIMIT_CONN=NO ;; --without-http_limit_req_module) HTTP_LIMIT_REQ=NO ;; |