[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT/LIB-NGINX] Provde NGINX modules as Kconfig options.



Hi Alex,

Thanks for the patch. There's one default that should be set to no (see below 
inline), but I can fix that on upstream.

-- Felipe

Reviewed-by: Felipe Huici <felipe.huici@xxxxxxxxx>

On 01.03.20, 12:14, "Alexander Jung" <a.jung@xxxxxxxxxxx> wrote:

    Signed-off-by: Alexander Jung <a.jung@xxxxxxxxxxx>
    ---
     Config.uk                 | 604 ++++++++++++++++++++++++++++-
     Makefile.uk               | 172 ++++++---
     include/ngx_auto_config.h | 184 ++++-----
     ngx_modules.c             | 945 
+++++++++++++++++++++++++++++++++++++++++++---
     4 files changed, 1692 insertions(+), 213 deletions(-)
    
    diff --git a/Config.uk b/Config.uk
    index 927178d..bba702d 100644
    --- a/Config.uk
    +++ b/Config.uk
    @@ -1,5 +1,5 @@
     menuconfig LIBNGINX
    -   bool "libnginx - Nginx"
    +   bool "libnginx - a HTTP and reverse proxy, a mail proxy, and a generic 
TCP/UDP proxy server"
        default n
        select LIBUKSCHEDCOOP
        select LIBSYSCALL_SHIM
    @@ -24,7 +24,609 @@ menuconfig LIBNGINX
        select LIBPTHREAD_EMBEDDED
     
     if LIBNGINX
    +
     config LIBNGINX_MAIN_FUNCTION
        bool "Provide main function"
        default n
    +
    +config LIBNGINX_DEBUG
    +   bool "Build with debugging enabled"
    +   default n
    +
    +menuconfig LIBNGINX_HTTP
    +   bool "Enable HTTP and reverse proxy server"
    +   default y
    +
    +if LIBNGINX_HTTP
    +
    +config LIBNGINX_HTTP_V2
    +   bool "Enable ngx_http_v2_module and ngx_http_v2_filter_module"
    +   default n
    +   help
    +           Provides support for HTTP/2.
    +
    +config LIBNGINX_HTTP_GZIP
    +   bool "Enable ngx_http_gzip_module"
    +   default y


Zlib is optional for nginx, so this should be set to "default n" 


    +   select LIBZLIB
    +   help
    +           The ngx_http_gzip_module module is a filter that compresses 
responses using
    +           the "gzip" method.
    +
    +config LIBNGINX_HTTP_GZIP_STATIC
    +   bool "Enable ngx_http_gzip_static_module"
    +   default n
    +   select LIBNGINX_HTTP_GZIP
    +   help
    +           The ngx_http_gzip_static_module module allows sending 
precompressed files
    +           with the ".gz" filename extension instead of regular files. 
    +
    +config LIBNGINX_HTTP_SSI
    +   bool "Enable ngx_http_ssi_module"
    +   default y
    +   select LIBNGINX_HTTP_POSTPONE
    +   help
    +           The ngx_http_ssi_module module is a filter that processes SSI 
(Server Side
    +           Includes) commands in responses passing through it. Currently, 
the list of
    +           supported SSI commands is incomplete.  
    +
    +config LIBNGINX_HTTP_SLICE
    +   bool "Enable ngx_http_slice_module"
    +   default n
    +   select LIBNGINX_HTTP_POSTPONE
    +   help
    +           The ngx_http_slice_module module is a filter that splits a 
request into 
    +           subrequests, each returning a certain range of response. The 
filter 
    +           provides more effective caching of big responses. 
    +
    +config LIBNGINX_HTTP_ADDITION
    +   bool "Enable ngx_http_addition_module"
    +   default n
    +   select LIBNGINX_HTTP_POSTPONE
    +   help
    +           The ngx_http_addition_module module is a filter that adds text 
before and 
    +           after a response. 
    +
    +config LIBNGINX_HTTP_POSTPONE
    +   bool "Enable ngx_http_postpone_module"
    +   default n
    +   help
    +           With the ngx_http_postpone_module it is possible that the 
transmission of 
    +           client data will be postponed until nginx has at least size 
bytes of data 
    +           to send.  A zero value disables postponing data transmission. 
    +
    +config LIBNGINX_HTTP_CHARSET
    +   bool "Enable ngx_http_charset_module"
    +   default y
    +   help
    +           The ngx_http_charset_module module adds the specified charset 
to the 
    +           "Content-Type" response header field.  In addition, the module 
can convert 
    +           data from one charset to another.
    +
    +config LIBNGINX_HTTP_XSLT
    +   bool "Enable ngx_http_xslt_module"
    +   default n
    +   help
    +           The ngx_http_xslt_module is a filter that transforms XML 
responses using 
    +           one or more XSLT stylesheets.  
    +
    +config LIBNGINX_HTTP_IMAGE_FILTER
    +   bool "Enable ngx_http_image_filter_module"
    +   default n
    +   help
    +           The ngx_http_image_filter_module module is a filter that 
transforms images 
    +           in JPEG, GIF, PNG, and WebP formats.  
    +
    +config LIBNGINX_HTTP_SUB
    +   bool "Enable ngx_http_sub_module"
    +   default n
    +   help
    +           The ngx_http_sub_module module is a filter that modifies a 
response by 
    +           replacing one specified string by another. 
    +
    +config LIBNGINX_HTTP_GUNZIP
    +   bool "Enable ngx_http_gunzip_filter_module"
    +   default n
    +   help
    +           The ngx_http_gunzip_module module is a filter that decompresses 
responses 
    +           with "Content-Encoding: gzip" for clients that do not support 
"gzip" 
    +           encoding method.  The module will be useful when it is 
desirable to store 
    +           data compressed to save space and reduce I/O costs. 
    +
    +config LIBNGINX_HTTP_USERID
    +   bool "Enable ngx_http_userid_module"
    +   default y
    +   select LIBPOSIX_USER
    +   help
    +           The ngx_http_userid_module module sets cookies suitable for 
client 
    +           identification.  Received and set cookies can be logged using 
the embedded 
    +           variables $uid_got and $uid_set. This module is compatible with 
the mod_uid 
    +           module for Apache. 
    +
    +config LIBNGINX_HTTP_DAV
    +   bool "Enable ngx_http_dav_module"
    +   default n
    +   help
    +           The ngx_http_dav_module module is intended for file management 
automation 
    +           via the WebDAV protocol.  The module processes HTTP and WebDAV 
methods PUT, 
    +           DELETE, MKCOL, COPY, and MOVE. 
    +
    +config LIBNGINX_HTTP_AUTOINDEX
    +   bool "Enable ngx_http_autoindex_module"
    +   default y
    +   help
    +           The ngx_http_autoindex_module module processes requests ending 
with the 
    +           slash character ('/') and produces a directory listing.  
Usually a request 
    +           is passed to the ngx_http_autoindex_module module when the 
    +           ngx_http_index_module module cannot find an index file.
    +
    +config LIBNGINX_HTTP_RANDOM_INDEX
    +   bool "Enable ngx_http_random_index_module"
    +   default n
    +   help
    +           The ngx_http_random_index_module module processes requests 
ending with the 
    +           slash character ('/') and picks a random file in a directory to 
serve as an 
    +           index file.  The module is processed before the 
ngx_http_index_module 
    +           module.
    +
    +config LIBNGINX_HTTP_MIRROR
    +   bool "Enable ngx_http_mirror_module"
    +   default y
    +   help
    +           The ngx_http_mirror_module module implements mirroring of an 
original 
    +           request by creating background mirror subrequests.  Responses 
to mirror 
    +           subrequests are ignored. 
    +
    +config LIBNGINX_HTTP_AUTH_REQUEST
    +   bool "Enable ngx_http_auth_request_module"
    +   default n
    +   help
    +           The ngx_http_auth_request_module module implements client 
authorization 
    +           based on the result of a subrequest.  If the subrequest returns 
a 2xx 
    +           response code, the access is allowed.  If it returns 401 or 
403, the access 
    +           is denied with the corresponding error code.  Any other 
response code 
    +           returned by the subrequest is considered an error.
    +           
    +           For the 401 error, the client also receives the 
"WWW-Authenticate" header 
    +           from the subrequest response.
    +           
    +           The module may be combined with other access modules, such as 
    +           ngx_http_access_module, ngx_http_auth_basic_module, and 
    +           ngx_http_auth_jwt_module, via the satisfy directive. 
    +
    +config LIBNGINX_HTTP_AUTH_BASIC
    +   bool "Enable ngx_http_auth_basic_module"
    +   default n
    +   select LIBCRYPTO
    +   help
    +           The ngx_http_auth_basic_module module allows limiting access to 
resources 
    +           by validating the user name and password using the "HTTP Basic 
    +           Authentication" protocol.
    +            
    +           Access can also be limited by address, by the result of 
subrequest, or by 
    +           JWT.  Simultaneous limitation of access by address and by 
password is 
    +           controlled by the satisfy directive. 
    +
    +config LIBNGINX_HTTP_ACCESS
    +   bool "Enable ngx_http_access_module"
    +   default y
    +   help
    +           The ngx_http_access_module module allows limiting access to 
certain client 
    +           addresses.
    +           
    +           Access can also be limited by password, by the result of 
subrequest, or by 
    +           JWT.  Simultaneous limitation of access by address and by 
password is 
    +           controlled by the satisfy directive. 
    +
    +config LIBNGINX_HTTP_LIMIT_CONN
    +   bool "Enable ngx_http_limit_conn_module"
    +   default y
    +   help
    +           The ngx_http_limit_conn_module module is used to limit the 
number of 
    +           connections per the defined key, in particular, the number of 
connections 
    +           from a single IP address.
    +           
    +           Not all connections are counted. A connection is counted only 
if it has a 
    +           request being processed by the server and the whole request 
header has 
    +           already been read. 
    +
    +config LIBNGINX_HTTP_LIMIT_REQ
    +   bool "Enable ngx_http_limit_req_module"
    +   default y
    +   help
    +           The ngx_http_limit_req_module module is used to limit the 
request 
    +           processing rate per a defined key, in particular, the 
processing rate of 
    +           requests coming from a single IP address.  The limitation is 
done using the 
    +           "leaky bucket" method. 
    +
    +config LIBNGINX_HTTP_REALIP
    +   bool "Enable ngx_http_realip_module"
    +   default n
    +   help
    +           The ngx_http_realip_module module is used to change the client 
address and 
    +           optional port to those sent in the specified header field.
    +
    +config LIBNGINX_HTTP_STATUS
    +   bool "Enable ngx_http_status_module"
    +   default n
    +   help
    +           The ngx_http_status_module module provides access to various 
status 
    +           information.
    +
    +config LIBNGINX_HTTP_GEO
    +   bool "Enable ngx_http_geo_module"
    +   default y
    +   help
    +           The ngx_http_geo_module module creates variables with values 
depending on 
    +           the client IP address. 
    +
    +config LIBNGINX_HTTP_GEOIP
    +   bool "Enable ngx_http_geoip_moduleHTTP geoip"
    +   default n
    +   help
    +           The ngx_http_geoip_module module creates variables with values 
depending on 
    +           the client IP address, using the precompiled MaxMind databases.
    +           
    +           When using the databases with IPv6 support, IPv4 addresses are 
looked up as 
    +           IPv4-mapped IPv6 addresses. 
    +
    +config LIBNGINX_HTTP_MAP
    +   bool "Enable ngx_http_map_module"
    +   default y
    +   help
    +           The ngx_http_map_module module creates variables whose values 
depend on 
    +           values of other variables. 
    +
    +config LIBNGINX_HTTP_SPLIT_CLIENTS
    +   bool "Enable ngx_http_split_clients_module"
    +   default y
    +   help
    +           The ngx_http_split_clients_module module creates variables 
suitable for A/B 
    +           testing, also known as split testing. 
    +
    +config LIBNGINX_HTTP_REFERER
    +   bool "Enable ngx_http_referer_module"
    +   default y
    +   help
    +           The ngx_http_referer_module module is used to block access to a 
site for 
    +           requests with invalid values in the "Referer" header field. It 
should be 
    +           kept in mind that fabricating a request with an appropriate 
"Referer" field 
    +           value is quite easy, and so the intended purpose of this module 
is not to 
    +           block such requests thoroughly but to block the mass flow of 
requests sent 
    +           by regular browsers. It should also be taken into consideration 
that 
    +           regular browsers may not send the "Referer" field even for 
valid requests. 
    +
    +config LIBNGINX_HTTP_REWRITE
    +   bool "Enable ngx_http_rewrite_module"
    +   default n
    +   select LIBPCRE
    +   help
    +           The ngx_http_rewrite_module module is used to change request 
URI using PCRE 
    +           regular expressions, return redirects, and conditionally select 
    +           configurations. 
    +
    +config LIBNGINX_HTTP_SSL
    +   bool "Enable ngx_http_ssl_module"
    +   default n
    +   select LIBOPENSSL
    +   select LIBSSL
    +   help
    +           The ngx_http_ssl_module module provides the necessary support 
for HTTPS.
    +
    +config LIBNGINX_HTTP_PROXY
    +   bool "Enable ngx_http_proxy_module"
    +   default y
    +   help
    +           The ngx_http_proxy_module module allows passing requests to 
another server.
    +
    +config LIBNGINX_HTTP_FASTCGI
    +   bool "Enable ngx_http_fastcgi_module"
    +   default y
    +   help
    +           The ngx_http_fastcgi_module module allows passing requests to a 
FastCGI 
    +           server.
    +
    +config LIBNGINX_HTTP_UWSGI
    +   bool "Enable ngx_http_uwsgi_module"
    +   default y
    +   help
    +           The ngx_http_uwsgi_module module allows passing requests to a 
uwsgi server.
    +
    +config LIBNGINX_HTTP_SCGI
    +   bool "Enable ngx_http_scgi_module"
    +   default y
    +   help
    +           The ngx_http_scgi_module module allows passing requests to an 
SCGI server.
    +
    +config LIBNGINX_HTTP_GRPC
    +   bool "Enable ngx_http_grpc_module"
    +   default y
    +   select LIBNGINX_HTTP_V2
    +   help
    +           The ngx_http_grpc_module module allows passing requests to a 
gRPC server.
    +
    +config LIBNGINX_HTTP_PERL
    +   bool "Enable ngx_http_perl_module"
    +   default n
    +   select LIBPCRE
    +   help
    +           The ngx_http_perl_module module is used to implement location 
and variable 
    +           handlers in Perl and insert Perl calls into SSI. 
    +
    +config LIBNGINX_HTTP_MEMCACHED
    +   bool "Enable ngx_http_memcached_module"
    +   default y
    +   help
    +           The ngx_http_memcached_module module is used to obtain 
responses from a 
    +           memcached server.  The key is set in the $memcached_key 
variable.  A 
    +           response should be put in memcached in advance by means 
external to nginx. 
    +
    +config LIBNGINX_HTTP_EMPTY_GIF
    +   bool "Enable ngx_http_empty_gif_module"
    +   default y
    +   help
    +           The ngx_http_empty_gif_module module emits single-pixel 
transparent GIF. 
    +
    +config LIBNGINX_HTTP_BROWSER
    +   bool "Enable ngx_http_browser_module"
    +   default y
    +   help
    +           The ngx_http_browser_module module creates variables whose 
values depend on 
    +           the value of the "User-Agent" request header field:
    +
    +                   $modern_browser:  equals the value set by the 
modern_browser_value 
    +                           directive, if a browser was identified as 
modern;
    +
    +                   $ancient_browser: equals the value set by the 
ancient_browser_value 
    +                           directive, if a browser was identified as 
ancient;
    +
    +                   $msie: equals "1" if a browser was identified as MSIE 
of any version.  
    +
    +config LIBNGINX_HTTP_SECURE_LINK
    +   bool "Enable ngx_http_secure_link_module"
    +   default n
    +   help
    +           The ngx_http_secure_link_module module is used to check 
authenticity of 
    +           requested links, protect resources from unauthorized  access, 
and limit 
    +           link lifetime.
    +            
    +           The authenticity of a requested link is verified by comparing 
the checksum 
    +           value passed in a request with the value computed for the 
request.  If a 
    +           link has a limited lifetime and the time has expired, the link 
is 
    +           considered outdated. The status of these checks is made 
available in the 
    +           $secure_link variable.
    +           
    +           The module provides two alternative operation modes.  The first 
mode is 
    +           enabled by the secure_link_secret directive and is used to 
check 
    +           authenticity of requested links as well as protect resources 
from 
    +           unauthorized access.  The second mode is enabled by the 
secure_link and 
    +           secure_link_md5 directives and is also used to limit lifetime 
of links. 
    +
    +config LIBNGINX_HTTP_DEGRADATION
    +   bool "Enable ngx_http_degradation_module"
    +   default n
    +   help
    +           The ngx_http_degradation_module orders Nginx to serve a 
particular error 
    +           page when low memory conditions are met.
    +
    +config LIBNGINX_HTTP_FLV
    +   bool "Enable ngx_http_flv_module"
    +   default n
    +   help
    +           The ngx_http_flv_module module provides pseudo-streaming 
server-side 
    +           support for Flash Video (FLV) files.
    +           
    +           It handles requests with the start argument in the request 
URI's query 
    +           string specially, by sending back the contents of a file 
starting from the 
    +           requested byte offset and with the prepended FLV header.
    +
    +config LIBNGINX_HTTP_UPSTREAM
    +   bool "Enable ngx_http_upstream_module"
    +   default y
    +   help
    +           The ngx_http_upstream_module module is used to define groups of 
servers 
    +           that can be referenced by the proxy_pass, fastcgi_pass, 
uwsgi_pass, 
    +           scgi_pass, memcached_pass, and grpc_pass directives. 
    +
    +config LIBNGINX_HTTP_UPSTREAM_HASH
    +   bool "Enable ngx_http_upstream_hash_module"
    +   select LIBNGINX_HTTP_UPSTREAM
    +   default y
    +   help
    +           Specifies a load balancing method for a server group where the 
    +           client-server mapping is based on the hashed key value.
    +
    +config LIBNGINX_HTTP_UPSTREAM_IP_HASH
    +   bool "Enable ngx_http_upstream_ip_hash_module"
    +   select LIBNGINX_HTTP_UPSTREAM
    +   default y
    +   help
    +           Specifies that a group should use a load balancing method where 
requests 
    +           are distributed between servers based on client IP addresses.
    +
    +config LIBNGINX_HTTP_UPSTREAM_LEAST_CONN
    +   bool "Enable ngx_http_upstream_least_conn_module"
    +   select LIBNGINX_HTTP_UPSTREAM
    +   default y
    +   help
    +           Specifies that a group should use a load balancing method where 
a request 
    +           is passed to the server with the least number of active 
connections, taking 
    +           into account weights of servers.  If there are several such 
servers, they 
    +           are tried in turn using a weighted round-robin balancing 
method. 
    +
    +config LIBNGINX_HTTP_UPSTREAM_RANDOM
    +   bool "Enable ngx_http_upstream_random_module"
    +   select LIBNGINX_HTTP_UPSTREAM
    +   default y
    +   help
    +           Specifies that a group should use a load balancing method where 
a request 
    +           is passed to a randomly selected server, taking into account 
weights of 
    +           servers. 
    +
    +config LIBNGINX_HTTP_UPSTREAM_KEEPALIVE
    +   bool "Enable ngx_http_upstream_keepalive_module"
    +   select LIBNGINX_HTTP_UPSTREAM
    +   default y
    +   help
    +           Activates the cache for connections to upstream servers.
    +
    +config LIBNGINX_HTTP_UPSTREAM_ZONE
    +   bool "Enable ngx_http_upstream_zone_module"
    +   select LIBNGINX_HTTP_UPSTREAM
    +   default y
    +   help
    +           Defines the name and size of the shared memory zone that keeps 
the group's 
    +           configuration and run-time state that are shared between worker 
processes.
    +
    +config LIBNGINX_HTTP_STUB_STATUS
    +   bool "Enable ngx_http_stub_status_module"
    +   default y
    +   help
    +           The ngx_http_stub_status_module module provides access to basic 
status 
    +           information.
    +
    +endif
    +
    +menuconfig LIBNGINX_MAIL
    +   bool "Enable mail proxy server"
    +   default n
    +
    +if LIBNGINX_MAIL
    +
    +config LIBNGINX_MAIL_SSL
    +   bool "Enable ngx_mail_ssl_module"
    +   default n
    +   select LIBOPENSSL
    +   select LIBSSL
    +   help
    +           The ngx_mail_ssl_module module provides the necessary support 
for a mail 
    +           proxy server to work with the SSL/TLS protocol. 
    +
    +config LIBNGINX_MAIL_POP3
    +   bool "Enable ngx_mail_pop3_module"
    +   default y
    +   help
    +           Sets permitted methods of authentication for POP3 clients.
    +
    +config LIBNGINX_MAIL_IMAP
    +   bool "Enable ngx_mail_imap_module"
    +   default y
    +   help
    +           Sets permitted methods of authentication for IMAP clients.
    +
    +config LIBNGINX_MAIL_SMTP
    +   bool "Enable ngx_mail_smtp_module"
    +   default y
    +   help
    +           Sets permitted methods of SASL authentication for SMTP clients.
    +
    +endif
    +
    +menuconfig LIBNGINX_STREAM
    +   bool "Enable generic TCP/UDP proxy server"
    +   default n
    +
    +if LIBNGINX_STREAM
    +
    +config LIBNGINX_STREAM_SSL
    +   bool "Enable ngx_stream_ssl_module"
    +   default n
    +   select LIBOPENSSL
    +   select LIBSSL
    +   select LIBUKSWRAND
    +   select LIBUKSWRAND_DEVFS
    +   help
    +           The ngx_stream_ssl_module module provides the necessary support 
for a 
    +           stream proxy server to work with the SSL/TLS protocol.
    +
    +config LIBNGINX_STREAM_REALIP
    +   bool "Enable ngx_stream_realip_module"
    +   default n
    +   help
    +           The ngx_stream_realip_module module is used to change the 
client address 
    +           and port to the ones sent in the PROXY protocol header.  The 
PROXY protocol 
    +           must be previously enabled by setting the proxy_protocol 
parameter in the 
    +           listen directive. 
    +
    +config LIBNGINX_STREAM_ACCESS
    +   bool "Enable ngx_stream_access_module"
    +   default y
    +   help
    +           The ngx_stream_access_module module allows limiting access to 
certain 
    +           client addresses.
    +
    +config LIBNGINX_STREAM_GEO
    +   bool "Enable ngx_stream_geo_module"
    +   default y
    +   help
    +           The ngx_stream_geo_module module creates variables with values 
depending on 
    +           the client IP address. 
    +
    +config LIBNGINX_STREAM_GEOIP
    +   bool "Enable ngx_stream_geoip_module"
    +   default n
    +   help
    +           The ngx_stream_geoip_module module creates variables with 
values depending 
    +           on the client IP address, using the precompiled MaxMind 
databases.
    +           
    +           When using the databases with IPv6 support, IPv4 addresses are 
looked up as 
    +           IPv4-mapped IPv6 addresses.
    +
    +config LIBNGINX_STREAM_SPLIT_CLIENTS
    +   bool "Enable ngx_stream_split_clients_module"
    +   default y
    +   help
    +           The ngx_stream_split_clients_module module creates variables 
suitable for A/
    +           B testing, also known as split testing. 
    +
    +config LIBNGINX_STREAM_RETURN
    +   bool "Enable ngx_stream_return_module"
    +   default y
    +   help
    +           The ngx_stream_return_module module allows sending a specified 
value to the 
    +           client and then closing the connection. 
    +
    +config LIBNGINX_STREAM_UPSTREAM
    +   bool "Enable ngx_stream_upstream_module"
    +   default y
    +   help
    +           The ngx_stream_upstream_module module is used to define groups 
of servers 
    +           that can be referenced by the proxy_pass directive. 
    +
    +config LIBNGINX_STREAM_UPSTREAM_LEAST_CONN
    +   bool "Enable ngx_stream_upstream_least_conn_module"
    +   select LIBNGINX_STREAM_UPSTREAM
    +   default y
    +   help
    +           Specifies that a group should use a load balancing method where 
a 
    +           connection is passed to the server with the least number of 
active 
    +           connections, taking into account weights of servers.  If there 
are several 
    +           such servers, they are tried in turn using a weighted 
round-robin balancing 
    +           method. 
    +
    +config LIBNGINX_STREAM_UPSTREAM_RANDOM
    +   bool "Enable ngx_stream_upstream_random_module"
    +   select LIBNGINX_STREAM_UPSTREAM
    +   default y
    +   help
    +           Specifies that a group should use a load balancing method where 
a 
    +           connection is passed to a randomly selected server, taking into 
account 
    +           weights of servers. 
    +
    +config LIBNGINX_STREAM_UPSTREAM_ZONE
    +   bool "Enable ngx_stream_upstream_zone_module"
    +   select LIBNGINX_STREAM_UPSTREAM
    +   default y
    +   help
    +           Defines the name and size of the shared memory zone that keeps 
the group's 
    +           configuration and run-time state that are shared between worker 
processes.
    +
    +config LIBNGINX_STREAM_SSL_PREREAD
    +   bool "Enable ngx_stream_ssl_preread_module"
    +   default n
    +   help
    +           The ngx_stream_ssl_preread_module module allows extracting 
information from 
    +           the ClientHello message without terminating SSL/TLS, for 
example, the 
    +           server name requested through SNI or protocols advertised in 
ALPN.
    +endif
     endif
    diff --git a/Makefile.uk b/Makefile.uk
    index 839a7f8..812bdcd 100644
    --- a/Makefile.uk
    +++ b/Makefile.uk
    @@ -3,8 +3,10 @@
     #  Nginx Makefile.uk
     #
     #  Authors: Mihai Pogonaru <pogonarumihai@xxxxxxxxx>
    +#           Alexander Jung <alexander.jung@xxxxxxxxx>
     #
     #  Copyright (c) 2019, University Politehnica of Bucharest. All rights 
reserved.
    +#                2020, NEC Europe Ltd., NEC Corporation. All rights 
reserved.
     #
     #  Redistribution and use in source and binary forms, with or without
     #  modification, are permitted provided that the following conditions
    @@ -67,13 +69,13 @@ CINCLUDES-$(CONFIG_LIBNGINX) += 
-I$(LIBNGINX_BASE)/include
     LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/core
     LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/event
     LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/event/modules
    -LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/http
    -LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/http/modules
    -LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX) += 
-I$(LIBNGINX_SRC)/http/modules/perl
    -LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/http/v2
    -LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/mail
    +LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX_HTTP) += -I$(LIBNGINX_SRC)/http
    +LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX_HTTP) += 
-I$(LIBNGINX_SRC)/http/modules
    +LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX_HTTP) += 
-I$(LIBNGINX_SRC)/http/modules/perl
    +LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX_HTTP_V2) += -I$(LIBNGINX_SRC)/http/v2
    +LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX_MAIL) += -I$(LIBNGINX_SRC)/mail
     LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/os/unix
    -LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX) += -I$(LIBNGINX_SRC)/stream
    +LIBNGINX_CINCLUDES-$(CONFIG_LIBNGINX_STREAM) += -I$(LIBNGINX_SRC)/stream
     
     
################################################################################
     # Flags
    @@ -130,6 +132,7 @@ LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_spinlock.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_string.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_syslog.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/core/ngx_times.c
    +LIBNGINX_SRCS-$(CONFIG_LIBPCRE) += $(LIBNGINX_SRC)/core/ngx_regex.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/modules/ngx_select_module.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event_accept.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event.c
    @@ -138,20 +141,8 @@ LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/event/ngx_event_pipe.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event_posted.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event_timer.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/event/ngx_event_udp.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_copy_filter_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_core_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_header_filter_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_parse.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_postpone_filter_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_request_body.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_request.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_script.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_special_response.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_upstream.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_upstream_round_robin.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_variables.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/ngx_http_write_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBSSL) += $(LIBNGINX_SRC)/event/ngx_event_openssl.c
    +LIBNGINX_SRCS-$(CONFIG_LIBSSL) += 
$(LIBNGINX_SRC)/event/ngx_event_openssl_stapling.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_alloc.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_channel.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_daemon.c
    @@ -176,37 +167,110 @@ LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/os/unix/ngx_udp_send.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_udp_sendmsg_chain.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_user.c
     LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/os/unix/ngx_writev_chain.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_access_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_autoindex_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_browser_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_charset_filter_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_chunked_filter_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_empty_gif_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_fastcgi_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_geo_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_headers_filter_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_index_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_limit_conn_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_limit_req_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_log_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_map_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_memcached_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_mirror_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_not_modified_filter_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_proxy_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_range_filter_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_referer_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_scgi_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_split_clients_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_ssi_filter_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_static_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_sub_filter_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_try_files_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_hash_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_ip_hash_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_keepalive_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_least_conn_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_random_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_zone_module.c
    -LIBNGINX_SRCS-y += 
$(LIBNGINX_SRC)/http/modules/ngx_http_userid_filter_module.c
    -LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_uwsgi_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += $(LIBNGINX_SRC)/http/ngx_http.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_core_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_parse.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_request_body.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_request.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_script.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_special_response.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_upstream.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_upstream_round_robin.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_variables.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_write_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_log_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_header_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_chunked_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_V2) += 
$(LIBNGINX_SRC)/http/v2/ngx_http_v2_encode.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_V2) += 
$(LIBNGINX_SRC)/http/v2/ngx_http_v2_huff_decode.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_V2) += 
$(LIBNGINX_SRC)/http/v2/ngx_http_v2_huff_encode.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_V2) += 
$(LIBNGINX_SRC)/http/v2/ngx_http_v2_table.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_V2) += 
$(LIBNGINX_SRC)/http/v2/ngx_http_v2.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_V2) += 
$(LIBNGINX_SRC)/http/v2/ngx_http_v2_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_range_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_GZIP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_gzip_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_POSTPONE) += 
$(LIBNGINX_SRC)/http/ngx_http_postpone_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_SSI) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_ssi_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_CHARSET) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_charset_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_XSLT) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_xslt_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_IMAGE_FILTER) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_image_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_SUB) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_sub_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_ADDITION) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_addition_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_GUNZIP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_gunzip_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_USERID) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_userid_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_headers_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/ngx_http_copy_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_not_modified_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_SLICE) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_slice_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_V2) += 
$(LIBNGINX_SRC)/http/v2/ngx_http_v2_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_static_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_GZIP_STATIC) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_gzip_static_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_DAV) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_dav_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_AUTOINDEX) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_autoindex_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_index_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_RANDOM_INDEX) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_random_index_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_MIRROR) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_mirror_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_try_files_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_AUTH_REQUEST) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_auth_request_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_AUTH_BASIC) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_auth_basic_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_ACCESS) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_access_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_LIMIT_CONN) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_limit_conn_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_LIMIT_REQ) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_limit_req_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_REALIP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_limit_req_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_STATUS) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_status_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_GEO) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_geo_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_GEOIP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_geoip_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_MAP) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_map_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_SPLIT_CLENTS) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_split_clients_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_REFERER) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_referer_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_REWRITE) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_rewrite_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_SSL) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_ssl_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_PROXY) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_proxy_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_FASTCGI) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_fastcgi_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_UWSGI) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_uwsgi_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_SCGI) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_scgi_module.c
    +ifeq ($(CONFIG_LIBNGINX_HTTP_GRPC)$(CONFIG_LIBNGINX_HTTP_V2),yy)
    +LIBNGINX_SRCS-y += $(LIBNGINX_SRC)/http/modules/ngx_http_grpc_module.c
    +endif
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_PERL) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_perl_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_MEMCACHED) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_memcached_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_EMPTY_GIF) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_empty_gif_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_BROWSER) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_browser_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_SECURE_LINK) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_secure_link_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_DEGRADATION) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_degradation_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_FLV) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_flv_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_MP4) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_mp4_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_UPSTREAM_HASH) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_hash_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_UPSTREAM_IP_HASH) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_ip_hash_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_UPSTREAM_LEAST_CONN) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_least_conn_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_UPSTREAM_RANDOM) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_random_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_UPSTREAM_KEEPALIVE) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_keepalive_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_UPSTREAM_ZONE) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_upstream_zone_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_HTTP_STUB_STATUS) += 
$(LIBNGINX_SRC)/http/modules/ngx_http_stub_status_module.c
    +
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_MAIL) += $(LIBNGINX_SRC)/mail/ngx_mail.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_MAIL) += 
$(LIBNGINX_SRC)/mail/ngx_mail_core_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_MAIL_SSL) += 
$(LIBNGINX_SRC)/mail/ngx_mail_ssl_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_MAIL_POP3) += 
$(LIBNGINX_SRC)/mail/ngx_mail_pop3_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_MAIL_IMAP) += 
$(LIBNGINX_SRC)/mail/ngx_mail_imap_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_MAIL_SMTP) += 
$(LIBNGINX_SRC)/mail/ngx_mail_smtp_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_MAIL) += 
$(LIBNGINX_SRC)/mail/ngx_mail_auth_http_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_MAIL) += 
$(LIBNGINX_SRC)/mail/ngx_mail_proxy_module.c
    +
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM) += 
$(LIBNGINX_SRC)/stream/ngx_stream.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM) += 
$(LIBNGINX_SRC)/stream/ngx_stream_core_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM) += 
$(LIBNGINX_SRC)/stream/ngx_stream_log_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM) += 
$(LIBNGINX_SRC)/stream/ngx_stream_proxy_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM) += 
$(LIBNGINX_SRC)/stream/ngx_stream_upstream_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM) += 
$(LIBNGINX_SRC)/stream/ngx_stream_write_filter_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM_SSL) += 
$(LIBNGINX_SRC)/stream/ngx_stream_ssl_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM_REALIP) += 
$(LIBNGINX_SRC)/stream/ngx_stream_realip_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM_ACCESS) += 
$(LIBNGINX_SRC)/stream/ngx_stream_access_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM_GEO) += 
$(LIBNGINX_SRC)/stream/ngx_stream_geo_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM_GEOIP) += 
$(LIBNGINX_SRC)/stream/ngx_stream_geoip_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM_SPLIT_CLIENTS) += 
$(LIBNGINX_SRC)/stream/ngx_stream_split_clients_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM_RETURN) += 
$(LIBNGINX_SRC)/stream/ngx_stream_return_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM_UPSTREAM_LEAST_CONN) += 
$(LIBNGINX_SRC)/stream/ngx_stream_upstream_least_conn_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM_UPSTREAM_RANDOM) += 
$(LIBNGINX_SRC)/stream/ngx_stream_upstream_random_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM_UPSTREAM_ZONE) += 
$(LIBNGINX_SRC)/stream/ngx_stream_upstream_zone_module.c
    +LIBNGINX_SRCS-$(CONFIG_LIBNGINX_STREAM_SSL_PREREAD) += 
$(LIBNGINX_SRC)/stream/ngx_stream_ssl_preread_module.c
    diff --git a/include/ngx_auto_config.h b/include/ngx_auto_config.h
    index d85b8a6..564dc02 100644
    --- a/include/ngx_auto_config.h
    +++ b/include/ngx_auto_config.h
    @@ -1,493 +1,475 @@
    -#define NGX_CONFIGURE " --prefix=/nginx --with-http_sub_module 
--with-select_module --without-http_gzip_module --without-pcre 
--without-http_rewrite_module --without-http_auth_basic_module 
--without-http-cache"
    +#define NGX_CONFIGURE "\
    +  --prefix=/nginx \
    +  --with-http_sub_module \
    +  --with-select_module \
    +  --without-http_gzip_module \
    +  --without-pcre \
    +  --without-http_rewrite_module \
    +  --without-http_auth_basic_module \
    +  --without-http-cache"
    +
    +#ifndef NGX_DEBUG
    +#ifdef CONFIG_LIBNGINX_DEBUG
    +#define NGX_DEBUG  1
    +#else
    +#define NGX_DEBUG  0
    +#endif
    +#endif
     
     #ifndef NGX_COMPILER
     #define NGX_COMPILER  "gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) "
     #endif
     
    -
     #ifndef NGX_HAVE_GCC_ATOMIC
     #define NGX_HAVE_GCC_ATOMIC  1
     #endif
     
    -
     #ifndef NGX_HAVE_C99_VARIADIC_MACROS
     #define NGX_HAVE_C99_VARIADIC_MACROS  1
     #endif
     
    -
     #ifndef NGX_HAVE_GCC_VARIADIC_MACROS
     #define NGX_HAVE_GCC_VARIADIC_MACROS  1
     #endif
     
    -
     #ifndef NGX_HAVE_GCC_BSWAP64
     #define NGX_HAVE_GCC_BSWAP64  1
     #endif
     
    -
     #ifndef NGX_HAVE_EPOLL
     #define NGX_HAVE_EPOLL  0
     #endif
     
    -
     #ifndef NGX_HAVE_CLEAR_EVENT
     #define NGX_HAVE_CLEAR_EVENT  1
     #endif
     
    -
     #ifndef NGX_HAVE_EPOLLRDHUP
     #define NGX_HAVE_EPOLLRDHUP  0
     #endif
     
    -
     #ifndef NGX_HAVE_EPOLLEXCLUSIVE
     #define NGX_HAVE_EPOLLEXCLUSIVE  0
     #endif
     
    -
     #ifndef NGX_HAVE_O_PATH
     #define NGX_HAVE_O_PATH  0
     #endif
     
    -
     #ifndef NGX_HAVE_SENDFILE
     #define NGX_HAVE_SENDFILE  1
     #endif
     
    -
     #ifndef NGX_HAVE_SENDFILE64
     #define NGX_HAVE_SENDFILE64  1
     #endif
     
    -
     #ifndef NGX_HAVE_PR_SET_DUMPABLE
     #define NGX_HAVE_PR_SET_DUMPABLE  1
     #endif
     
    -
     #ifndef NGX_HAVE_PR_SET_KEEPCAPS
     #define NGX_HAVE_PR_SET_KEEPCAPS  1
     #endif
     
    -
     #ifndef NGX_HAVE_CAPABILITIES
     #define NGX_HAVE_CAPABILITIES  0
     #endif
     
    -
     #ifndef NGX_HAVE_GNU_CRYPT_R
     #define NGX_HAVE_GNU_CRYPT_R  1
     #endif
     
    -
     #ifndef NGX_HAVE_NONALIGNED
     #define NGX_HAVE_NONALIGNED  1
     #endif
     
    -
     #ifndef NGX_CPU_CACHE_LINE
     #define NGX_CPU_CACHE_LINE  64
     #endif
     
    -
     #define NGX_KQUEUE_UDATA_T  (void *)
     
    -
     #ifndef NGX_HAVE_POSIX_FADVISE
     #define NGX_HAVE_POSIX_FADVISE  0
     #endif
     
    -
     #ifndef NGX_HAVE_O_DIRECT
     #define NGX_HAVE_O_DIRECT  0
     #endif
     
    -
     #ifndef NGX_HAVE_ALIGNED_DIRECTIO
     #define NGX_HAVE_ALIGNED_DIRECTIO  0
     #endif
     
    -
     #ifndef NGX_HAVE_STATFS
     #define NGX_HAVE_STATFS  1
     #endif
     
    -
     #ifndef NGX_HAVE_STATVFS
     #define NGX_HAVE_STATVFS  1
     #endif
     
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_RANDOM
    +#ifndef NGX_STAT_STUB
    +#define NGX_STAT_STUB  1
    +#endif
    +#endif
     
     #ifndef NGX_HAVE_DLOPEN
     #define NGX_HAVE_DLOPEN  1
     #endif
     
    -
     #ifndef NGX_HAVE_SCHED_YIELD
     #define NGX_HAVE_SCHED_YIELD  1
     #endif
     
    -
     #ifndef NGX_HAVE_SCHED_SETAFFINITY
     #define NGX_HAVE_SCHED_SETAFFINITY  0
     #endif
     
    -
     #ifndef NGX_HAVE_REUSEPORT
     #define NGX_HAVE_REUSEPORT  1
     #endif
     
    -
     #ifndef NGX_HAVE_TRANSPARENT_PROXY
     #define NGX_HAVE_TRANSPARENT_PROXY  1
     #endif
     
    -
     #ifndef NGX_HAVE_IP_BIND_ADDRESS_NO_PORT
     #define NGX_HAVE_IP_BIND_ADDRESS_NO_PORT  0
     #endif
     
    -
     #ifndef NGX_HAVE_IP_PKTINFO
     #define NGX_HAVE_IP_PKTINFO  0
     #endif
     
    -
     #ifndef NGX_HAVE_IPV6_RECVPKTINFO
     #define NGX_HAVE_IPV6_RECVPKTINFO  0
     #endif
     
    -
     #ifndef NGX_HAVE_DEFERRED_ACCEPT
     #define NGX_HAVE_DEFERRED_ACCEPT  1
     #endif
     
    -
     #ifndef NGX_HAVE_KEEPALIVE_TUNABLE
     #define NGX_HAVE_KEEPALIVE_TUNABLE  1
     #endif
     
    -
     #ifndef NGX_HAVE_TCP_FASTOPEN
     #define NGX_HAVE_TCP_FASTOPEN  0
     #endif
     
    -
     #ifndef NGX_HAVE_TCP_INFO
     #define NGX_HAVE_TCP_INFO  0
     #endif
     
    -
     #ifndef NGX_HAVE_ACCEPT4
     #define NGX_HAVE_ACCEPT4  0
     #endif
     
    -
     #ifndef NGX_HAVE_EVENTFD
     #define NGX_HAVE_EVENTFD  0
     #endif
     
    -
     #ifndef NGX_HAVE_SYS_EVENTFD_H
     #define NGX_HAVE_SYS_EVENTFD_H  1
     #endif
     
    -
     #ifndef NGX_HAVE_UNIX_DOMAIN
     #define NGX_HAVE_UNIX_DOMAIN  0
     #endif
     
    -
     #ifndef NGX_PTR_SIZE
     #define NGX_PTR_SIZE  8
     #endif
     
    -
     #ifndef NGX_SIG_ATOMIC_T_SIZE
     #define NGX_SIG_ATOMIC_T_SIZE  4
     #endif
     
    -
     #ifndef NGX_HAVE_LITTLE_ENDIAN
     #define NGX_HAVE_LITTLE_ENDIAN  1
     #endif
     
    -
     #ifndef NGX_MAX_SIZE_T_VALUE
     #define NGX_MAX_SIZE_T_VALUE  9223372036854775807LL
     #endif
     
    -
     #ifndef NGX_SIZE_T_LEN
     #define NGX_SIZE_T_LEN  (sizeof("-9223372036854775808") - 1)
     #endif
     
    -
     #ifndef NGX_MAX_OFF_T_VALUE
     #define NGX_MAX_OFF_T_VALUE  9223372036854775807LL
     #endif
     
    -
     #ifndef NGX_OFF_T_LEN
     #define NGX_OFF_T_LEN  (sizeof("-9223372036854775808") - 1)
     #endif
     
    -
     #ifndef NGX_TIME_T_SIZE
     #define NGX_TIME_T_SIZE  8
     #endif
     
    -
     #ifndef NGX_TIME_T_LEN
     #define NGX_TIME_T_LEN  (sizeof("-9223372036854775808") - 1)
     #endif
     
    -
     #ifndef NGX_MAX_TIME_T_VALUE
     #define NGX_MAX_TIME_T_VALUE  9223372036854775807LL
     #endif
     
    -
     #ifndef NGX_HAVE_INET6
     #define NGX_HAVE_INET6  0
     #endif
     
    -
     #ifndef NGX_HAVE_PREAD
     #define NGX_HAVE_PREAD  1
     #endif
     
    -
     #ifndef NGX_HAVE_PWRITE
     #define NGX_HAVE_PWRITE  1
     #endif
     
    -
     #ifndef NGX_HAVE_PWRITEV
     #define NGX_HAVE_PWRITEV  1
     #endif
     
    -
     #ifndef NGX_SYS_NERR
     #define NGX_SYS_NERR  12 /* was 135, Unikraft does not have all the error 
codes */
     #endif
     
    -
     #ifndef NGX_HAVE_LOCALTIME_R
     #define NGX_HAVE_LOCALTIME_R  1
     #endif
     
    -
     #ifndef NGX_HAVE_CLOCK_MONOTONIC
     #define NGX_HAVE_CLOCK_MONOTONIC  0
     #endif
     
    -
     #ifndef NGX_HAVE_POSIX_MEMALIGN
     #define NGX_HAVE_POSIX_MEMALIGN  1
     #endif
     
    -
     #ifndef NGX_HAVE_MEMALIGN
     #define NGX_HAVE_MEMALIGN  1
     #endif
     
    -
     #ifndef NGX_HAVE_MAP_ANON
     #define NGX_HAVE_MAP_ANON  1
     #endif
     
    -
     #ifndef NGX_HAVE_MAP_DEVZERO
     #define NGX_HAVE_MAP_DEVZERO  1
     #endif
     
    -
     #ifndef NGX_HAVE_SYSVSHM
     #define NGX_HAVE_SYSVSHM  1
     #endif
     
    -
     #ifndef NGX_HAVE_POSIX_SEM
     #define NGX_HAVE_POSIX_SEM  1
     #endif
     
    -
     #ifndef NGX_HAVE_MSGHDR_MSG_CONTROL
     #define NGX_HAVE_MSGHDR_MSG_CONTROL  1
     #endif
     
    -
     #ifndef NGX_HAVE_FIONBIO
     #define NGX_HAVE_FIONBIO  1 /* ioctl(FIONBIO) */
     #endif
     
    -
     #ifndef NGX_HAVE_GMTOFF
     #define NGX_HAVE_GMTOFF  1
     #endif
     
    -
     #ifndef NGX_HAVE_D_TYPE
     #define NGX_HAVE_D_TYPE  1
     #endif
     
    -
     #ifndef NGX_HAVE_SC_NPROCESSORS_ONLN
     #define NGX_HAVE_SC_NPROCESSORS_ONLN  1
     #endif
     
    -
     #ifndef NGX_HAVE_LEVEL1_DCACHE_LINESIZE
     #define NGX_HAVE_LEVEL1_DCACHE_LINESIZE  1
     #endif
     
    -
     #ifndef NGX_HAVE_OPENAT
     #define NGX_HAVE_OPENAT  1
     #endif
     
    -
     #ifndef NGX_HAVE_GETADDRINFO
     #define NGX_HAVE_GETADDRINFO  1
     #endif
     
    -
     #ifndef NGX_HAVE_SELECT
     #define NGX_HAVE_SELECT  1
     #endif
     
    +#ifdef CONFIG_LIBNGINX_HTTP_V2
    +#ifndef NGX_HTTP_V2
    +#define NGX_HTTP_V2  1
    +#endif
    +#else
    +#ifndef NGX_HTTP_V2
    +#define NGX_HTTP_V2  0
    +#endif
    +#endif
    +
    +#ifndef NGX_SSL
    +#ifdef CONFIG_LIBSSL
    +#define NGX_SSL  1
    +#else
    +#define NGX_SSL  0
    +#endif
    +#endif
    +
    +#ifndef NGX_OPENSSL
    +#if defined(CONFIG_LIBSSL)
    +#define NGX_OPENSSL  1
    +#else
    +#define NGX_OPENSSL  0
    +#endif
    +#endif
    +
    +#ifndef NGX_HTTP_SSL
    +#ifdef CONFIG_LIBNGINX_HTTP_SSL
    +#define NGX_HTTP_SSL  1
    +#else
    +#define NGX_HTTP_SSL  0
    +#endif
    +#endif
     
     #ifndef NGX_HTTP_CACHE
     #define NGX_HTTP_CACHE  0 /* disabled module */
     #endif
     
    +#ifndef NGX_HTTP_HEADERS
    +#define NGX_HTTP_HEADERS  1
    +#endif
     
     #ifndef NGX_HTTP_GZIP
    -#define NGX_HTTP_GZIP  0 /* disabled module */
    +#ifdef CONFIG_LIBNGINX_HTTP_GZIP
    +#define NGX_HTTP_GZIP  1
    +#else
    +#define NGX_HTTP_GZIP  0
    +#endif
     #endif
     
    -
    +#ifdef CONFIG_LIBNGINX_HTTP_SSI
     #ifndef NGX_HTTP_SSI
     #define NGX_HTTP_SSI  1
     #endif
    +#endif
     
    -
    +#ifdef CONFIG_LIBCRYPTO
     #ifndef NGX_CRYPT
    -#define NGX_CRYPT  0 /* disabled module */
    +#define NGX_CRYPT  1
    +#endif
    +#else
    +#ifndef NGX_CRYPT
    +#define NGX_CRYPT  0
    +#endif
     #endif
    -
     
     #ifndef NGX_HTTP_X_FORWARDED_FOR
     #define NGX_HTTP_X_FORWARDED_FOR  1
     #endif
     
    -
     #ifndef NGX_HTTP_X_FORWARDED_FOR
     #define NGX_HTTP_X_FORWARDED_FOR  1
     #endif
     
    -
     #ifndef NGX_HTTP_UPSTREAM_ZONE
     #define NGX_HTTP_UPSTREAM_ZONE  1
     #endif
     
    -
    +#ifdef CONFIG_LIBPCRE
     #ifndef NGX_PCRE
    -#define NGX_PCRE  0 /* disabled module */
    +#define NGX_PCRE  1
     #endif
     
    -
     #ifndef NGX_HAVE_PCRE_JIT
    -#define NGX_HAVE_PCRE_JIT  0 /* disabled module */
    +#define NGX_HAVE_PCRE_JIT  0
    +#endif
     #endif
     
    -
    +#ifdef CONFIG_LIBZLIB
     #ifndef NGX_ZLIB
    -#define NGX_ZLIB  0 /* disabled module */
    +#define NGX_ZLIB  1
    +#endif
    +#else
    +#ifndef NGX_ZLIB
    +#define NGX_ZLIB  0
    +#endif
     #endif
    -
     
     #ifndef NGX_PREFIX
     #define NGX_PREFIX  "/nginx/"
     #endif
     
    -
     #ifndef NGX_CONF_PREFIX
     #define NGX_CONF_PREFIX  "conf/"
     #endif
     
    -
     #ifndef NGX_SBIN_PATH
     #define NGX_SBIN_PATH  "sbin/nginx"
     #endif
     
    -
     #ifndef NGX_CONF_PATH
     #define NGX_CONF_PATH  "conf/nginx.conf"
     #endif
     
    -
     #ifndef NGX_PID_PATH
     #define NGX_PID_PATH  "logs/nginx.pid"
     #endif
     
    -
     #ifndef NGX_LOCK_PATH
     #define NGX_LOCK_PATH  "logs/nginx.lock"
     #endif
     
    -
     #ifndef NGX_ERROR_LOG_PATH
     #define NGX_ERROR_LOG_PATH  "logs/error.log"
     #endif
     
    -
     #ifndef NGX_HTTP_LOG_PATH
     #define NGX_HTTP_LOG_PATH  "logs/access.log"
     #endif
     
    -
     #ifndef NGX_HTTP_CLIENT_TEMP_PATH
     #define NGX_HTTP_CLIENT_TEMP_PATH  "client_body_temp"
     #endif
     
    -
     #ifndef NGX_HTTP_PROXY_TEMP_PATH
     #define NGX_HTTP_PROXY_TEMP_PATH  "proxy_temp"
     #endif
     
    -
     #ifndef NGX_HTTP_FASTCGI_TEMP_PATH
     #define NGX_HTTP_FASTCGI_TEMP_PATH  "fastcgi_temp"
     #endif
     
    -
     #ifndef NGX_HTTP_UWSGI_TEMP_PATH
     #define NGX_HTTP_UWSGI_TEMP_PATH  "uwsgi_temp"
     #endif
     
    -
     #ifndef NGX_HTTP_SCGI_TEMP_PATH
     #define NGX_HTTP_SCGI_TEMP_PATH  "scgi_temp"
     #endif
     
    -
     #ifndef NGX_SUPPRESS_WARN
     #define NGX_SUPPRESS_WARN  1
     #endif
     
    -
     #ifndef NGX_SMP
     #define NGX_SMP  0
     #endif
     
    -
     #ifndef NGX_USER
     #define NGX_USER  "root"
     #endif
     
    -
     #ifndef NGX_GROUP
     #define NGX_GROUP  "root"
     #endif
    diff --git a/ngx_modules.c b/ngx_modules.c
    index 99e6eac..3015582 100644
    --- a/ngx_modules.c
    +++ b/ngx_modules.c
    @@ -2,116 +2,671 @@
     #include <ngx_config.h>
     #include <ngx_core.h>
     
    -
    -
     extern ngx_module_t  ngx_core_module;
     extern ngx_module_t  ngx_errlog_module;
     extern ngx_module_t  ngx_conf_module;
    -//extern ngx_module_t  ngx_regex_module;
     extern ngx_module_t  ngx_events_module;
     extern ngx_module_t  ngx_event_core_module;
    -//extern ngx_module_t  ngx_epoll_module;
     extern ngx_module_t  ngx_select_module;
    +
    +#ifdef CONFIG_LIBNGINX_HTTP
    +#include <ngx_http.h>
    +
     extern ngx_module_t  ngx_http_module;
     extern ngx_module_t  ngx_http_core_module;
     extern ngx_module_t  ngx_http_log_module;
    +
    +#ifdef CONFIG_LIBNGINX_UPSTREAM
     extern ngx_module_t  ngx_http_upstream_module;
    +#endif
    +
    +extern ngx_module_t  ngx_http_write_filter_module;
    +extern ngx_module_t  ngx_http_header_filter_module;
    +extern ngx_module_t  ngx_http_chunked_filter_module;
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_V2
    +extern ngx_module_t  ngx_http_v2_filter_module;
    +#endif
    +
    +extern ngx_module_t  ngx_http_range_header_filter_module;
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GZIP
    +extern ngx_module_t  ngx_http_gzip_filter_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_POSTPONE
    +extern ngx_module_t  ngx_http_postpone_filter_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SSI
    +extern ngx_module_t  ngx_http_ssi_filter_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_CHARSET
    +extern ngx_module_t  ngx_http_charset_filter_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_XSLT
    +extern ngx_module_t  ngx_http_xslt_filter_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_IMAGE_FILTER
    +extern ngx_module_t  ngx_http_image_filter_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SUB
    +extern ngx_module_t  ngx_http_sub_filter_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_ADDITION
    +extern ngx_module_t  ngx_http_addition_filter_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GUNZIP
    +extern ngx_module_t  ngx_http_gunzip_filter_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_USERID
    +extern ngx_module_t  ngx_http_userid_filter_module;
    +#endif
    +
    +extern ngx_module_t  ngx_http_headers_filter_module;
    +extern ngx_module_t  ngx_http_copy_filter_module;
    +extern ngx_module_t  ngx_http_range_body_filter_module;
    +extern ngx_module_t  ngx_http_not_modified_filter_module;
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SLICE
    +extern ngx_module_t  ngx_http_slice_filter_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_V2
    +extern ngx_module_t  ngx_http_v2_module;
    +#endif
    +
     extern ngx_module_t  ngx_http_static_module;
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GZIP_STATIC
    +extern ngx_module_t  ngx_http_gzip_static_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_DAV
    +extern ngx_module_t  ngx_http_dav_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_AUTOINDEX
     extern ngx_module_t  ngx_http_autoindex_module;
    +#endif
    +
     extern ngx_module_t  ngx_http_index_module;
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_RANDOM_INDEX
    +extern ngx_module_t  ngx_http_random_index_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MIRROR
     extern ngx_module_t  ngx_http_mirror_module;
    +#endif
    +
     extern ngx_module_t  ngx_http_try_files_module;
    -//extern ngx_module_t  ngx_http_auth_basic_module;
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_AUTH_REQUEST
    +extern ngx_module_t  ngx_http_auth_request_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_AUTH_BASIC
    +extern ngx_module_t  ngx_http_auth_basic_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_ACCESS
     extern ngx_module_t  ngx_http_access_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_LIMIT_CONN
     extern ngx_module_t  ngx_http_limit_conn_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_LIMIT_REQ
     extern ngx_module_t  ngx_http_limit_req_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_REALIP
    +extern ngx_module_t  ngx_http_realip_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_STATUS
    +extern ngx_module_t  ngx_http_status_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GEO
     extern ngx_module_t  ngx_http_geo_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GEOIP
    +extern ngx_module_t  ngx_http_geoip_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MAP
     extern ngx_module_t  ngx_http_map_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SPLIT_CLENTS
     extern ngx_module_t  ngx_http_split_clients_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_REFERER
     extern ngx_module_t  ngx_http_referer_module;
    -//extern ngx_module_t  ngx_http_rewrite_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_REWRITE
    +extern ngx_module_t  ngx_http_rewrite_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SSL
    +extern ngx_module_t  ngx_http_ssl_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_PROXY
     extern ngx_module_t  ngx_http_proxy_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_FASTCGI
     extern ngx_module_t  ngx_http_fastcgi_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UWSGI
     extern ngx_module_t  ngx_http_uwsgi_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SCGI
     extern ngx_module_t  ngx_http_scgi_module;
    +#endif
    +
    +#if defined CONFIG_LIBNGINX_HTTP_GRPC  && defined CONFIG_LIBNGINX_HTTP_V2
    +extern ngx_module_t  ngx_http_grpc_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_PERL
    +extern ngx_module_t  ngx_http_perl_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MEMCACHED
     extern ngx_module_t  ngx_http_memcached_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_EMPTY_GIF
     extern ngx_module_t  ngx_http_empty_gif_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_BROWSER
     extern ngx_module_t  ngx_http_browser_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SECURE_LINK
    +extern ngx_module_t  ngx_http_secure_link_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_DEGRADATION
    +extern ngx_module_t  ngx_http_degradation_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_FLV
    +extern ngx_module_t  ngx_http_flv_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MP4
    +extern ngx_module_t  ngx_http_mp4_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_HASH
     extern ngx_module_t  ngx_http_upstream_hash_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_IP_HASH
     extern ngx_module_t  ngx_http_upstream_ip_hash_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_LEAST_CONN
     extern ngx_module_t  ngx_http_upstream_least_conn_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_RANDOM
     extern ngx_module_t  ngx_http_upstream_random_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_KEEPALIVE
     extern ngx_module_t  ngx_http_upstream_keepalive_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_ZONE
     extern ngx_module_t  ngx_http_upstream_zone_module;
    -extern ngx_module_t  ngx_http_write_filter_module;
    -extern ngx_module_t  ngx_http_header_filter_module;
    -extern ngx_module_t  ngx_http_chunked_filter_module;
    -extern ngx_module_t  ngx_http_range_header_filter_module;
    -//extern ngx_module_t  ngx_http_gzip_filter_module;
    -extern ngx_module_t  ngx_http_postpone_filter_module;
    -extern ngx_module_t  ngx_http_ssi_filter_module;
    -extern ngx_module_t  ngx_http_charset_filter_module;
    -extern ngx_module_t  ngx_http_sub_filter_module;
    -extern ngx_module_t  ngx_http_userid_filter_module;
    -extern ngx_module_t  ngx_http_headers_filter_module;
    -extern ngx_module_t  ngx_http_copy_filter_module;
    -extern ngx_module_t  ngx_http_range_body_filter_module;
    -extern ngx_module_t  ngx_http_not_modified_filter_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_STUB_STATUS
    +extern ngx_module_t  ngx_http_stub_status_module;
    +#endif
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL
    +extern ngx_module_t  ngx_mail_module;
    +extern ngx_module_t  ngx_mail_core_module;
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_SSL
    +extern ngx_module_t  ngx_mail_ssl_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_POP3
    +extern ngx_module_t  ngx_mail_pop3_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_IMAP
    +extern ngx_module_t  ngx_mail_imap_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_SMTP
    +extern ngx_module_t  ngx_mail_smtp_module;
    +#endif
    +
    +extern ngx_module_t  ngx_mail_auth_http_module;
    +extern ngx_module_t  ngx_mail_proxy_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM
    +extern ngx_module_t  ngx_stream_module;
    +extern ngx_module_t  ngx_stream_core_module;
    +extern ngx_module_t  ngx_stream_log_module;
    +extern ngx_module_t  ngx_stream_proxy_module;
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM
    +extern ngx_module_t  ngx_stream_upstream_module;
    +#endif
    +
    +extern ngx_module_t  ngx_stream_write_filter_module;
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_SSL
    +extern ngx_module_t  ngx_stream_ssl_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_REALIP
    +extern ngx_module_t  ngx_stream_realip_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_ACCESS
    +extern ngx_module_t  ngx_stream_access_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_GEO
    +extern ngx_module_t  ngx_stream_geo_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_GEOIP
    +extern ngx_module_t  ngx_stream_geoip_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_SPLIT_CLIENTS
    +extern ngx_module_t  ngx_stream_split_clients_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_RETURN
    +extern ngx_module_t  ngx_stream_return_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM_LEAST_CONN
    +extern ngx_module_t  ngx_stream_upstream_least_conn_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM_RANDOM
    +extern ngx_module_t  ngx_stream_upstream_random_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM_ZONE
    +extern ngx_module_t  ngx_stream_upstream_zone_module;
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_SSL_PREREAD
    +extern ngx_module_t  ngx_stream_ssl_preread_module;
    +#endif
    +#endif
    +
    +#ifdef CONFIG_LIBNSSL
    +extern ngx_module_t  ngx_openssl_module;
    +#endif
    +
    +#ifdef CONFIG_LIBPCRE
    +extern ngx_module_t  ngx_regex_module;
    +#endif
     
     ngx_module_t *ngx_modules[] = {
         &ngx_core_module,
         &ngx_errlog_module,
         &ngx_conf_module,
    -//    &ngx_regex_module,
         &ngx_events_module,
         &ngx_event_core_module,
    -//    &ngx_epoll_module,
         &ngx_select_module,
    +
    +#ifdef CONFIG_LIBNGINX_HTTP
         &ngx_http_module,
         &ngx_http_core_module,
         &ngx_http_log_module,
    +
    +#ifdef CONFIG_LIBNGINX_UPSTREAM
         &ngx_http_upstream_module,
    +#endif
    +
    +    &ngx_http_write_filter_module,
    +    &ngx_http_header_filter_module,
    +    &ngx_http_chunked_filter_module,
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_V2
    +    &ngx_http_v2_filter_module,
    +#endif
    +
    +    &ngx_http_range_header_filter_module,
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GZIP
    +    &ngx_http_gzip_filter_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_POSTPONE
    +    &ngx_http_postpone_filter_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SSI
    +    &ngx_http_ssi_filter_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_CHARSET
    +    &ngx_http_charset_filter_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_XSLT
    +    &ngx_http_xslt_filter_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_IMAGE_FILTER
    +    &ngx_http_image_filter_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SUB
    +    &ngx_http_sub_filter_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_ADDITION
    +    &ngx_http_addition_filter_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GUNZIP
    +    &ngx_http_gunzip_filter_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_USERID
    +    &ngx_http_userid_filter_module,
    +#endif
    +
    +    &ngx_http_headers_filter_module,
    +    &ngx_http_copy_filter_module,
    +    &ngx_http_range_body_filter_module,
    +    &ngx_http_not_modified_filter_module,
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SLICE
    +    &ngx_http_slice_filter_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_V2
    +    &ngx_http_v2_module,
    +#endif
    +
         &ngx_http_static_module,
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GZIP_STATIC
    +    &ngx_http_gzip_static_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_DAV
    +    &ngx_http_dav_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_AUTOINDEX
         &ngx_http_autoindex_module,
    +#endif
    +
         &ngx_http_index_module,
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_RANDOM_INDEX
    +    &ngx_http_random_index_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MIRROR
         &ngx_http_mirror_module,
    +#endif
    +
         &ngx_http_try_files_module,
    -//    &ngx_http_auth_basic_module,
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_AUTH_REQUEST
    +    &ngx_http_auth_request_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_AUTH_BASIC
    +    &ngx_http_auth_basic_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_ACCESS
         &ngx_http_access_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_LIMIT_CONN
         &ngx_http_limit_conn_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_LIMIT_REQ
         &ngx_http_limit_req_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_REALIP
    +    &ngx_http_realip_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_STATUS
    +    &ngx_http_status_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GEO
         &ngx_http_geo_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GEOIP
    +    &ngx_http_geoip_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MAP
         &ngx_http_map_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SPLIT_CLENTS
         &ngx_http_split_clients_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_REFERER
         &ngx_http_referer_module,
    -//    &ngx_http_rewrite_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_REWRITE
    +    &ngx_http_rewrite_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SSL
    +    &ngx_http_ssl_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_PROXY
         &ngx_http_proxy_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_FASTCGI
         &ngx_http_fastcgi_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UWSGI
         &ngx_http_uwsgi_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SCGI
         &ngx_http_scgi_module,
    +#endif
    +
    +#if defined CONFIG_LIBNGINX_HTTP_GRPC && defined CONFIG_LIBNGINX_HTTP_V2
    +    &ngx_http_grpc_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_PERL
    +    &ngx_http_perl_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MEMCACHED
         &ngx_http_memcached_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_EMPTY_GIF
         &ngx_http_empty_gif_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_BROWSER
         &ngx_http_browser_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SECURE_LINK
    +    &ngx_http_secure_link_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_DEGRADATION
    +    &ngx_http_degradation_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_FLV
    +    &ngx_http_flv_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MP4
    +    &ngx_http_mp4_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_HASH
         &ngx_http_upstream_hash_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_IP_HASH
         &ngx_http_upstream_ip_hash_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_LEAST_CONN
         &ngx_http_upstream_least_conn_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_RANDOM
         &ngx_http_upstream_random_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_KEEPALIVE
         &ngx_http_upstream_keepalive_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_ZONE
         &ngx_http_upstream_zone_module,
    -    &ngx_http_write_filter_module,
    -    &ngx_http_header_filter_module,
    -    &ngx_http_chunked_filter_module,
    -    &ngx_http_range_header_filter_module,
    -//    &ngx_http_gzip_filter_module,
    -    &ngx_http_postpone_filter_module,
    -    &ngx_http_ssi_filter_module,
    -    &ngx_http_charset_filter_module,
    -    &ngx_http_sub_filter_module,
    -    &ngx_http_userid_filter_module,
    -    &ngx_http_headers_filter_module,
    -    &ngx_http_copy_filter_module,
    -    &ngx_http_range_body_filter_module,
    -    &ngx_http_not_modified_filter_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_STUB_STATUS
    +    &ngx_http_stub_status_module,
    +#endif
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL
    +    &ngx_mail_module,
    +    &ngx_mail_core_module,
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_SSL
    +    &ngx_mail_ssl_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_POP3
    +    &ngx_mail_pop3_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_IMAP
    +    &ngx_mail_imap_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_SMTP
    +    &ngx_mail_smtp_module,
    +#endif
    +
    +    &ngx_mail_auth_http_module,
    +    &ngx_mail_proxy_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM
    +    &ngx_stream_module,
    +    &ngx_stream_core_module,
    +    &ngx_stream_log_module,
    +    &ngx_stream_proxy_module,
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM
    +    &ngx_stream_upstream_module,
    +#endif
    +
    +    &ngx_stream_write_filter_module,
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_SSL
    +    &ngx_stream_ssl_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_REALIP
    +    &ngx_stream_realip_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_ACCESS
    +    &ngx_stream_access_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_GEO
    +    &ngx_stream_geo_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_GEOIP
    +    &ngx_stream_geoip_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_SPLIT_CLIENTS
    +    &ngx_stream_split_clients_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_RETURN
    +    &ngx_stream_return_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM_LEAST_CONN
    +    &ngx_stream_upstream_least_conn_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM_RANDOM
    +    &ngx_stream_upstream_random_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM_ZONE
    +    &ngx_stream_upstream_zone_module,
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_SSL_PREREAD
    +    &ngx_stream_ssl_preread_module,
    +#endif
    +#endif
    +
    +#ifdef CONFIG_LIBNSSL
    +    &ngx_openssl_module,
    +#endif
    +
    +#ifdef CONFIG_LIBPCRE
    +    &ngx_regex_module,
    +#endif
    +
         NULL
     };
     
    @@ -119,56 +674,332 @@ char *ngx_module_names[] = {
         "ngx_core_module",
         "ngx_errlog_module",
         "ngx_conf_module",
    -//    "ngx_regex_module",
         "ngx_events_module",
         "ngx_event_core_module",
    -//    "ngx_epoll_module",
         "ngx_select_module",
    +
    +#ifdef CONFIG_LIBNGINX_HTTP
         "ngx_http_module",
         "ngx_http_core_module",
         "ngx_http_log_module",
    +    "ngx_http_write_filter_module",
    +    "ngx_http_header_filter_module",
    +    "ngx_http_chunked_filter_module",
    +
    +#ifdef CONFIG_LIBNGINX_UPSTREAM
         "ngx_http_upstream_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_V2
    +    "ngx_http_v2_filter_module",
    +#endif
    +
    +    "ngx_http_range_header_filter_module",
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GZIP
    +    "ngx_http_gzip_filter_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_POSTPONE
    +    "ngx_http_postpone_filter_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SSI
    +    "ngx_http_ssi_filter_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_CHARSET
    +    "ngx_http_charset_filter_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_XSLT
    +    "ngx_http_xslt_filter_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_IMAGE_FILTER
    +    "ngx_http_image_filter_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SUB
    +    "ngx_http_sub_filter_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_ADDITION
    +    "ngx_http_addition_filter_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GUNZIP
    +    "ngx_http_gunzip_filter_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_USERID
    +    "ngx_http_userid_filter_module",
    +#endif
    +
    +    "ngx_http_headers_filter_module",
    +    "ngx_http_copy_filter_module",
    +    "ngx_http_range_body_filter_module",
    +    "ngx_http_not_modified_filter_module",
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SLICE
    +    "ngx_http_slice_filter_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_V2
    +    "ngx_http_v2_module",
    +#endif
    +
         "ngx_http_static_module",
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GZIP_STATIC
    +    "ngx_http_gzip_static_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_DAV
    +    "ngx_http_dav_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_AUTOINDEX
         "ngx_http_autoindex_module",
    +#endif
    +
         "ngx_http_index_module",
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_RANDOM_INDEX
    +    "ngx_http_random_index_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MIRROR
         "ngx_http_mirror_module",
    +#endif
    +
         "ngx_http_try_files_module",
    -//    "ngx_http_auth_basic_module",
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_AUTH_REQUEST
    +    "ngx_http_auth_request_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_AUTH_BASIC
    +    "ngx_http_auth_basic_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_ACCESS
         "ngx_http_access_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_LIMIT_CONN
         "ngx_http_limit_conn_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_LIMIT_REQ
         "ngx_http_limit_req_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_REALIP
    +    "ngx_http_realip_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_STATUS
    +    "ngx_http_status_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GEO
         "ngx_http_geo_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_GEOIP
    +    "ngx_http_geoip_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MAP
         "ngx_http_map_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SPLIT_CLENTS
         "ngx_http_split_clients_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_REFERER
         "ngx_http_referer_module",
    -//    "ngx_http_rewrite_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_REWRITE
    +    "ngx_http_rewrite_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SSL
    +    "ngx_http_ssl_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_PROXY
         "ngx_http_proxy_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_FASTCGI
         "ngx_http_fastcgi_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UWSGI
         "ngx_http_uwsgi_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SCGI
         "ngx_http_scgi_module",
    +#endif
    +
    +#if defined CONFIG_LIBNGINX_HTTP_GRPC  && defined CONFIG_LIBNGINX_HTTP_V2
    +    "ngx_http_grpc_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_PERL
    +    "ngx_http_perl_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MEMCACHED
         "ngx_http_memcached_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_EMPTY_GIF
         "ngx_http_empty_gif_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_BROWSER
         "ngx_http_browser_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_SECURE_LINK
    +    "ngx_http_secure_link_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_DEGRADATION
    +    "ngx_http_degradation_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_FLV
    +    "ngx_http_flv_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_MP4
    +    "ngx_http_mp4_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_HASH
         "ngx_http_upstream_hash_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_IP_HASH
         "ngx_http_upstream_ip_hash_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_LEAST_CONN
         "ngx_http_upstream_least_conn_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_RANDOM
         "ngx_http_upstream_random_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_KEEPALIVE
         "ngx_http_upstream_keepalive_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_ZONE
         "ngx_http_upstream_zone_module",
    -    "ngx_http_write_filter_module",
    -    "ngx_http_header_filter_module",
    -    "ngx_http_chunked_filter_module",
    -    "ngx_http_range_header_filter_module",
    -//    "ngx_http_gzip_filter_module",
    -    "ngx_http_postpone_filter_module",
    -    "ngx_http_ssi_filter_module",
    -    "ngx_http_charset_filter_module",
    -    "ngx_http_sub_filter_module",
    -    "ngx_http_userid_filter_module",
    -    "ngx_http_headers_filter_module",
    -    "ngx_http_copy_filter_module",
    -    "ngx_http_range_body_filter_module",
    -    "ngx_http_not_modified_filter_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_HTTP_STUB_STATUS
    +    "ngx_http_stub_status_module",
    +#endif
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL
    +    "ngx_mail_module",
    +    "ngx_mail_core_module",
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_SSL
    +    "ngx_mail_ssl_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_POP3
    +    "ngx_mail_pop3_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_IMAP
    +    "ngx_mail_imap_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_MAIL_SMTP
    +    "ngx_mail_smtp_module",
    +#endif
    +
    +    "ngx_mail_auth_http_module",
    +    "ngx_mail_proxy_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM
    +    "ngx_stream_module",
    +    "ngx_stream_core_module",
    +    "ngx_stream_log_module",
    +    "ngx_stream_proxy_module",
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM
    +    "ngx_stream_upstream_module",
    +#endif
    +
    +    "ngx_stream_write_filter_module",
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_SSL
    +    "ngx_stream_ssl_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_REALIP
    +    "ngx_stream_realip_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_ACCESS
    +    "ngx_stream_access_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_GEO
    +    "ngx_stream_geo_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_GEOIP
    +    "ngx_stream_geoip_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_SPLIT_CLIENTS
    +    "ngx_stream_split_clients_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_RETURN
    +    "ngx_stream_return_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM_LEAST_CONN
    +    "ngx_stream_upstream_least_conn_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM_RANDOM
    +    "ngx_stream_upstream_random_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_UPSTREAM_ZONE
    +    "ngx_stream_upstream_zone_module",
    +#endif
    +
    +#ifdef CONFIG_LIBNGINX_STREAM_SSL_PREREAD
    +    "ngx_stream_ssl_preread_module",
    +#endif
    +#endif
    +
    +#ifdef CONFIG_LIBNSSL
    +    "ngx_openssl_module",
    +#endif
    +
    +#ifdef CONFIG_LIBPCRE
    +    "ngx_regex_module",
    +#endif
    +
         NULL
     };
    -
    -- 
    2.11.0
    
    
    

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.