Commit graph

166 commits

Author SHA1 Message Date
Maxim Dounin
b8dd2ddff6 Win32: added WSAPoll() support.
WSAPoll() is only available with Windows Vista and newer (and only
available during compilation if _WIN32_WINNT >= 0x0600).  To make
sure the code works with Windows XP, we do not redefine _WIN32_WINNT,
but instead load WSAPoll() dynamically if it is not available during
compilation.

Also, sockets are not guaranteed to be small integers on Windows.
So an index array is used instead of NGX_USE_FD_EVENT to map
events to connections.
2019-01-24 21:51:21 +03:00
Roman Arutyunyan
07270ff0ca Events: moved ngx_recvmsg() to new file src/event/ngx_event_udp.c. 2018-06-01 16:55:49 +03:00
Roman Arutyunyan
bb3fcf3e3f Stream: filters. 2016-09-15 14:55:46 +03:00
Maxim Dounin
c2e391c832 An internal SHA1 implementation. 2016-06-09 16:55:38 +03:00
Roman Arutyunyan
4221836322 Stream: UDP proxy. 2016-01-20 19:52:12 +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
875356ff27 Dynamic modules: dlopen() support. 2016-02-04 18:30:21 +03:00
Maxim Dounin
b1c24662c3 Dynamic modules: moved module-related stuff to separate files. 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
Ruslan Ermilov
9fb313832a Configure: removed comment obsolete in 3b763d36e055. 2015-11-30 19:01:53 +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
Maxim Dounin
08a4e52aa8 Moved ngx_http_parse_time() to core, renamed accordingly.
The function is now called ngx_parse_http_time(), and can be used by
any code to parse HTTP-style date and time.  In particular, it will be
used for OCSP stapling.

For compatibility, a macro to map ngx_http_parse_time() to the new name
provided for a while.
2015-06-11 20:42:31 +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
90fca2303b Removed the obsolete aio module. 2015-04-22 18:57:32 +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
Ruslan Ermilov
ec8cab3f7f Core: read/write locks. 2015-03-21 14:05:08 +03:00
Ruslan Ermilov
fbfd78c669 Removed busy locks. 2015-03-20 06:45:32 +03:00
Ruslan Ermilov
1d16dc7eea Removed old pthread implementation. 2015-03-20 06:43:19 +03:00
Ruslan Ermilov
891c8a01c4 Removed old FreeBSD rfork() thread implementation. 2015-03-20 06:43:19 +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
Vladimir Homutov
4b60d6a406 Added syslog support for error_log and access_log directives. 2014-05-12 16:34:15 +04:00
Roman Arutyunyan
db53bb57ad Added server-side support for PROXY protocol v1 (ticket #355).
Client address specified in the PROXY protocol header is now
saved in the $proxy_protocol_addr variable and can be used in
the realip module.

This is currently not implemented for mail.
2014-03-17 17:41:24 +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
f82645a67a OCSP stapling: ssl_stapling_file support.
Very basic version without any OCSP responder query code, assuming valid
DER-encoded OCSP response is present in a ssl_stapling_file configured.

Such file might be produced with openssl like this:

openssl ocsp -issuer root.crt -cert domain.crt -respout domain.staple \
             -url http://ocsp.example.com
2012-10-01 12:41:08 +00:00
Maxim Dounin
1187730f7b Gunzip filter import. 2012-09-10 16:52:47 +00:00
Maxim Dounin
57fb58a1e8 Upstream: least_conn balancer module. 2012-06-03 23:21:26 +00:00
Ruslan Ermilov
448f8672fd worker_cpu_affinity: cleaned up Linux implementation, added FreeBSD support. 2012-03-21 13:58:51 +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
d3292d115b an internal MD5 implemenation
patch by Maxim Dounin
2011-04-15 15:58:06 +00:00
Igor Sysoev
4210c99839 ngx_murmur_hash2() 2011-04-15 10:59:24 +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
572e4d890e ngx_http_degradation_module 2009-11-16 12:20:00 +00:00
Igor Sysoev
6ae55a7a8f FreeBSD and Linux AIO support 2009-08-28 08:12:35 +00:00
Igor Sysoev
83a626137c ngx_http_geoip_module 2009-07-20 07:10:43 +00:00
Igor Sysoev
098b8ee438 divide select module into two modules: Unix and Win32 ones 2009-05-06 14:53:54 +00:00
Igor Sysoev
7e2efefd53 ngx_http_image_filter_module 2009-05-01 18:42:09 +00:00
Igor Sysoev
783a4563b5 Win32 master/workers model 2009-04-20 06:08:47 +00:00
Igor Sysoev
f321dbd59a a prelimiary proxy cache support 2009-03-23 13:14:51 +00:00