Commit graph

128 commits

Author SHA1 Message Date
Vladimir Homutov
175d4bb90c Stream: ssl_preread module.
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-15 14:56:51 +03:00
Roman Arutyunyan
bb3fcf3e3f Stream: filters. 2016-09-15 14:55:46 +03:00
Dmitry Volyntsev
791bd716af Stream: realip module. 2016-09-01 14:45:33 +03:00
Vladimir Homutov
2f6748ce8c Stream: log module. 2016-09-05 17:50:16 +03:00
Valentin Bartenev
ea47d8d7aa Events: support for EPOLLEXCLUSIVE.
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-15 15:18:57 +03:00
Vladimir Homutov
acac037289 Stream: split_clients module. 2016-07-12 17:34:52 +03:00
Vladimir Homutov
32d39c0607 Stream: geo module. 2016-06-30 16:12:50 +03:00
Vladimir Homutov
8851ca2f7e Stream: geoip module. 2016-07-12 17:34:43 +03:00
Vladimir Homutov
d54ac9788a Stream: individual build options for modules. 2016-07-12 12:38:01 +03:00
Roman Arutyunyan
74839ea88f Stream: return module. 2016-05-18 22:08:49 +03:00
Vladimir Homutov
34c207aecf Stream: map module. 2016-06-29 12:46:12 +03:00
Vladimir Homutov
fe16c7379e Stream: variables and script.
This is a port of corresponding http code with unrelated features excluded.
2016-07-04 16:37:36 +03:00
Maxim Dounin
44313caee5 Internal md5 and sha1 implementations are now always used.
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-06-30 18:57:39 +03:00
Ruslan Ermilov
8f0bffad5a Dynamic modules: perl. 2016-02-26 14:27:04 +03:00
Ruslan Ermilov
f6b3dbf777 Dynamic modules: added auth_basic module libs via ngx_module_libs=. 2016-02-10 11:36:25 +03:00
Maxim Dounin
ffb30705a0 Dynamic modules: NGX_STREAM define removed.
It's not used and contradicts the idea of dynamic loading.
2016-02-08 18:02:04 +03:00
Ruslan Ermilov
16de1db67f Dynamic modules: fixed a copy-n-paste error. 2016-02-05 14:02:54 +03:00
Maxim Dounin
f3e79434f5 Dynamic modules.
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-04 20:25:29 +03:00
Maxim Dounin
ab19074ae2 Dynamic modules: auto/module script.
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-04 18:30:21 +03:00
Maxim Dounin
a71722fa89 Dynamic modules: introduced HTTP_INIT_FILTER_MODULES.
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.
2016-02-04 18:30:21 +03:00
Roman Arutyunyan
2ed10244f9 Slice filter.
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-12-07 16:30:48 +03:00
Valentin Bartenev
02f6fb29a2 The HTTP/2 implementation (RFC 7240, 7241).
The SPDY support is removed, as it's incompatible with the new module.
2015-09-11 20:13:06 +03:00
Vladimir Homutov
0262c3d9c6 Stream: connection limiting module.
stream {
    limit_conn_zone $binary_remote_addr zone=perip:1m;
    limit_conn_log_level error;

    server {
        ...
        limit_conn perip 1;
    }
}
2015-06-18 14:17:30 +03:00
Vladimir Homutov
ba1eec3b04 Stream: access module.
stream {
    server {
        ...
        allow 127.0.0.1;
        deny all;
    }
}
2015-06-04 13:04:12 +03:00
Ruslan Ermilov
71b90a9bdd Removed the obsolete rtsig module. 2015-04-23 14:17:40 +03:00
Ruslan Ermilov
c6d6ff095f Stream: port from NGINX+. 2015-04-20 13:05:11 +03:00
Ruslan Ermilov
fb2cb325d9 Upstream: the "zone" directive.
Upstreams with the "zone" directive are kept in shared memory,
with a consistent view of all worker processes.
2015-04-14 19:01:25 +03:00
Valentin Bartenev
065a0f544a Thread pools implementation. 2015-03-14 17:37:07 +03:00
Roman Arutyunyan
3846484df1 Upstream: generic hash module. 2014-06-02 16:16:22 +04:00
Maxim Dounin
f59a52b756 Mail: mail dependencies are now honored while building addons. 2013-09-30 22:09:54 +04:00
Valentin Bartenev
6a0ea01e0c Events: support for EPOLLRDHUP (ticket #320).
Since Linux 2.6.17, epoll is able to report about peer half-closed connection
using special EPOLLRDHUP flag on a read event.
2013-07-12 14:51:07 +04:00
Maxim Dounin
b261aefe78 Auth request module import. 2013-08-21 19:19:47 +04:00
Valentin Bartenev
c9594dd61c Preliminary experimental support for SPDY draft 2. 2013-03-20 10:36:57 +00:00
Maxim Dounin
1187730f7b Gunzip filter import. 2012-09-10 16:52:47 +00:00
Ruslan Ermilov
e0c5661fcc Fixed compile-time conditionals used to detect if X-Forwarded-For support
is needed.
2012-06-21 11:02:22 +00:00
Maxim Dounin
57fb58a1e8 Upstream: least_conn balancer module. 2012-06-03 23:21:26 +00:00
Valentin Bartenev
c6467ab653 Fixed building --with-cpp_test_module on some systems. 2012-05-17 15:12:45 +00:00
Maxim Konovalov
0330b7ef84 Copyright updated. 2012-01-18 15:07:43 +00:00
Valentin Bartenev
498cc8846a Added support for regex study and PCRE JIT (ticket #41) optimizations on
configuration phase.
2011-12-26 13:10:36 +00:00
Valentin Bartenev
86fc57edd5 Renamed ngx_http_limit_zone_module to ngx_http_limit_conn_module. 2011-11-14 14:04:42 +00:00
Maxim Dounin
01923d7828 Upstream keepalive module. 2011-09-15 19:28:18 +00:00
Igor Sysoev
97b9bde764 ngx_http_mp4_module 2011-09-09 10:22:34 +00:00
Igor Sysoev
2cd05c70d8 "$apr1", "{PLAIN}", and "{SSHA}" password methods in auth basic module
patch by Maxim Dounin
2011-05-16 14:54:50 +00:00
Igor Sysoev
661df40ad7 gzip_disable degradation 2010-10-04 15:03:00 +00:00
Igor Sysoev
8c0c0c4231 ngx_http_scgi_module 2010-06-18 15:51:14 +00:00
Igor Sysoev
171cb44cd0 import original ngx_http_uwsgi_module version 2010-06-01 15:53:11 +00:00
Igor Sysoev
294b17b1c4 ngx_http_split_clients_module 2010-05-14 09:02:10 +00:00
Igor Sysoev
9b4376cb32 remove unused ./configure define's 2010-05-13 13:58:18 +00:00
Igor Sysoev
d307d7265a change ngx_http_ssi_filter and ngx_http_charset_filter order 2010-04-01 10:19:02 +00:00
Igor Sysoev
29b222315b fix typo 2010-03-30 15:04:41 +00:00