summaryrefslogtreecommitdiffhomepage
path: root/auto/modules (follow)
AgeCommit message (Collapse)AuthorFilesLines
2019-05-08Unconditional compilation of the postpone filter.Roman Arutyunyan1-17/+2
Postpone filter is an essential part of subrequest functionality. In absence of it a subrequest response body is sent to the client out of order with respect to the main request header and body, as well as other subrequests. For in-memory subrequests the response is also sent to the client instead of being stored in memory. Currently the postpone filter is automatically enabled if one of the following standard modules which are known to create subrequests is enabled: ssi, slice, addition. However a third-party module that creates subrequests can still be built without the postpone filter or be dynamically loaded in nginx built without it.
2018-06-15Upstream: ngx_http_upstream_random module.Vladimir Homutov1-0/+21
The module implements random load-balancing algorithm with optional second choice. In the latter case, the best of two servers is chosen, accounting number of connections and server weight. Example: upstream u { random [two [least_conn]]; server 127.0.0.1:8080; server 127.0.0.1:8081; server 127.0.0.1:8082; server 127.0.0.1:8083; }
2018-03-17The gRPC proxy module.Maxim Dounin1-0/+11
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.
2018-03-17HTTP/2: externalized various constants and interfaces.Maxim Dounin1-0/+1
2018-02-15HTTP/2: push additional request headers (closes #1478).Ruslan Ermilov1-0/+1
The Accept-Encoding, Accept-Language, and User-Agent header fields are now copied from the original request to pushed requests.
2017-07-20Mirror module.Roman Arutyunyan1-0/+11
2017-07-20Precontent phase.Roman Arutyunyan1-0/+11
The phase is added instead of the try_files phase. Unlike the old phase, the new one supports registering multiple handlers. The try_files implementation is moved to a separate ngx_http_try_files_module, which now registers a precontent phase handler.
2017-03-16Configure: fixed --without_http.Ruslan Ermilov1-678/+675
Instead of turning off some randomly selected http modules when --without-http is specified, just don't process the whole http modules section.
2017-03-16Configure: fixed build with --with-stream.Ruslan Ermilov1-0/+2
Some combinations of options might cause the builds with the --with-stream option to break due to invalid value of the STREAM_INCS make variable, e.g. auto/configure \ --with-stream \ --with-http_perl_module=dynamic \ --without-http_memcached_module \ --without-http_empty_gif_module \ --without-http_browser_module \ --without-http_upstream_hash_module \ --without-http_upstream_ip_hash_module \ --without-http_upstream_least_conn_module \ --without-http_upstream_keepalive_module \ --without-http_upstream_zone_module \ Explicit initialization of ngx_module_libs and ngx_module_link matches what we already do when processing mail modules, and is also required after the next change.
2016-11-21Configure: honor dependencies of dynamic modules.Maxim Dounin1-2/+2
Dependencies of dynamic modules are added to NGX_ADDON_DEPS (and it is now used for dynamic modules) to be in line with what happens in case of static compilation. To avoid duplication, MAIL_DEPS and STREAM_DEPS are no longer passed to auto/module when these modules are compiled as dynamic ones. Mail and stream dependencies are handled explicitly via corresponding variables.
2016-10-03Modules compatibility: --with-compat configure option.Maxim Dounin1-0/+12
2016-09-15Stream: ssl_preread module.Vladimir Homutov1-0/+10
The ssl_preread module extracts information from the SSL Client Hello message without terminating SSL. Currently, only $ssl_preread_server_name variable is supported, which contains server name from the SNI extension.
2016-09-15Stream: filters.Roman Arutyunyan1-2/+4
2016-09-01Stream: realip module.Dmitry Volyntsev1-0/+10
2016-09-05Stream: log module.Vladimir Homutov1-0/+2
2016-07-15Events: support for EPOLLEXCLUSIVE.Valentin Bartenev1-0/+1
This flag appeared in Linux 4.5 and is useful for avoiding thundering herd problem. The current Linux kernel implementation walks the list of exclusive waiters, and queues an event to each epfd, until it finds the first waiter that has threads blocked on it via epoll_wait().
2016-07-12Stream: split_clients module.Vladimir Homutov1-0/+10
2016-06-30Stream: geo module.Vladimir Homutov1-0/+10
2016-07-12Stream: geoip module.Vladimir Homutov1-0/+10
2016-07-12Stream: individual build options for modules.Vladimir Homutov1-2/+16
2016-05-18Stream: return module.Roman Arutyunyan1-0/+8
2016-06-29Stream: map module.Vladimir Homutov1-0/+8
2016-07-04Stream: variables and script.Vladimir Homutov1-0/+4
This is a port of corresponding http code with unrelated features excluded.
2016-06-30Internal md5 and sha1 implementations are now always used.Maxim Dounin1-6/+0
This reduces the number of moving parts in ABI compatibility checks. Additionally, it also allows to use OpenSSL in FIPS mode while still using md5 for non-security tasks.
2016-02-26Dynamic modules: perl.Ruslan Ermilov1-4/+2
2016-02-10Dynamic modules: added auth_basic module libs via ngx_module_libs=.Ruslan Ermilov1-2/+1
2016-02-08Dynamic modules: NGX_STREAM define removed.Maxim Dounin1-2/+0
It's not used and contradicts the idea of dynamic loading.
2016-02-05Dynamic modules: fixed a copy-n-paste error.Ruslan Ermilov1-1/+1
2016-02-04Dynamic modules.Maxim Dounin1-10/+117
The auto/module script is extended to understand ngx_module_link=DYNAMIC. When set, it links the module as a shared object rather than statically into nginx binary. The module can later be loaded using the "load_module" directive. New auto/module parameter ngx_module_order allows to define module loading order in complex cases. By default the order is set based on ngx_module_type. 3rd party modules can be compiled dynamically using the --add-dynamic-module configure option, which will preset ngx_module_link to "DYNAMIC" before calling the module config script. Win32 support is rudimentary, and only works when using MinGW gcc (which is able to handle exports/imports automatically). In collaboration with Ruslan Ermilov.
2016-02-04Dynamic modules: auto/module script.Maxim Dounin1-205/+774
This script simplifies configuration of additional modules, including 3rd party ones. The script is extensible, and will be used to introduce dynamic linking of modules in upcoming changes. 3rd party module config scripts are called with ngx_module_link preset to "ADDON" - this allows config scripts to call auto/module without ngx_module_link explicitly defined, as well as testing if new interface is in place if compatibility with older nginx versions is desired. In collaboration with Ruslan Ermilov.
2016-02-04Dynamic modules: introduced HTTP_INIT_FILTER_MODULES.Maxim Dounin1-8/+10
Additionally, HTTP_HEADERS_FILTER_MODULE now added to HTTP_FILTER_MODULES. This avoids explict use of modules at the later stages, now only module lists are used. This will be needed in later patches.
2015-12-07Slice filter.Roman Arutyunyan1-1/+14
Splits a request into subrequests, each providing a specific range of response. The variable "$slice_range" must be used to set subrequest range and proper cache key. The directive "slice" sets slice size. The following example splits requests into 1-megabyte cacheable subrequests. server { listen 8000; location / { slice 1m; proxy_cache cache; proxy_cache_key $uri$is_args$args$slice_range; proxy_set_header Range $slice_range; proxy_cache_valid 200 206 1h; proxy_pass http://127.0.0.1:9000; } }
2015-09-11The HTTP/2 implementation (RFC 7240, 7241).Valentin Bartenev1-9/+9
The SPDY support is removed, as it's incompatible with the new module.
2015-06-18Stream: connection limiting module.Vladimir Homutov1-0/+5
stream { limit_conn_zone $binary_remote_addr zone=perip:1m; limit_conn_log_level error; server { ... limit_conn perip 1; } }
2015-06-04Stream: access module.Vladimir Homutov1-0/+5
stream { server { ... allow 127.0.0.1; deny all; } }
2015-04-23Removed the obsolete rtsig module.Ruslan Ermilov1-7/+0
2015-04-20Stream: port from NGINX+.Ruslan Ermilov1-0/+36
2015-04-14Upstream: the "zone" directive.Ruslan Ermilov1-0/+6
Upstreams with the "zone" directive are kept in shared memory, with a consistent view of all worker processes.
2015-03-14Thread pools implementation.Valentin Bartenev1-0/+6
2014-06-02Upstream: generic hash module.Roman Arutyunyan1-0/+5
2013-09-30Mail: mail dependencies are now honored while building addons.Maxim Dounin1-0/+2
2013-07-12Events: support for EPOLLRDHUP (ticket #320).Valentin Bartenev1-0/+1
Since Linux 2.6.17, epoll is able to report about peer half-closed connection using special EPOLLRDHUP flag on a read event.
2013-08-21Auth request module import.Maxim Dounin1-0/+5
2013-03-20Preliminary experimental support for SPDY draft 2.Valentin Bartenev1-2/+17
2012-09-10Gunzip filter import.Maxim Dounin1-0/+8
2012-06-21Fixed compile-time conditionals used to detect if X-Forwarded-For supportRuslan Ermilov1-2/+4
is needed.
2012-06-03Upstream: least_conn balancer module.Maxim Dounin1-0/+5
2012-05-17Fixed building --with-cpp_test_module on some systems.Valentin Bartenev1-0/+1
2012-01-18Copyright updated.Maxim Konovalov1-0/+1
2011-12-26Added support for regex study and PCRE JIT (ticket #41) optimizations onValentin Bartenev1-0/+6
configuration phase.