Nginx HDA Bundle - Dynamic Modules Power

PPA description

Nginx packages based on mainline version, since nginx 1.11.5.

1. Dynamic modules (in separated packages)
headers-more-nginx module (https://github.com/openresty/headers-more-nginx-module)
lua-nginx module (https://github.com/openresty/lua-nginx-module)
naxsi module (https://github.com/nbs-system/naxsi) with pull 258 patch
nginx-length-hiding-filter module (https://github.com/nulab/nginx-length-hiding-filter-module)
nginx_session_binding_proxy module (https://github.com/wburgers/Session-Binding-Proxy)
ngx_devel_kit module (https://github.com/simpl/ngx_devel_kit)
ngx_pagespeed module (https://github.com/pagespeed/ngx_pagespeed)
rds-json-nginx module (https://github.com/openresty/rds-json-nginx-module) with pull 4 patch
testcookie-nginx module (https://github.com/kyprizel/testcookie-nginx-module)
nginx-upstream-order module (https://github.com/flygoast/ngx_http_upstream_order)
ngx-brotli module (https://github.com/google/ngx_brotli) :
ngx_brotli filter module - used to compress responses on-the-fly.
ngx_brotli static module - used to serve pre-compressed files.
ngx_postgres community module (https://github.com/konstruxi/ngx_postgres)
nchan module (https://github.com/slact/nchan)
ngx-http-auth-pam module (https://github.com/sto/ngx_http_auth_pam_module)
echo-nginx-module module (https://github.com/openresty/echo-nginx-module)
nginx-upstream-fair module (https://github.com/gnosek/nginx-upstream-fair)
ngx_cache_purge module (https://github.com/FRiCKLE/ngx_cache_purge)
ngx-fancyindex module (https://github.com/aperezdc/ngx-fancyindex/)
nginx-upload-progress module (https://github.com/masterzen/nginx-upload-progress-module)
ngx_http_substitutions_filter module (https://github.com/yaoweibin/ngx_http_substitutions_filter_module)
graphite-nginx module (https://github.com/mailru/graphite-nginx-module/)
nginx-module-vts (https://github.com/vozlt/nginx-module-vts)
nginx-module-ct needs newer openssl versions, possible support on artful in future

2. Base dynamic modules (in separated packages)
http_xslt module
http_image_filter module
http_geoip module
http_perl module
ngx_http_js module
ngx_mail module with xmmp patch backported from nginx-xmpp (https://github.com/robn/nginx-xmpp) linked with mail_ssl
ngx_stream module linked with stream_ssl

3. Static modules
http_ssl module
http_realip module
http_addition module
http_sub module
http_gunzip module
http_gzip_static module
http_random_index module
http_secure_link module
http_stub_status module
http_auth_request module
http_slice module

Modules removed: http_dav, http_flv, http_mp4

Optimizations made:
Server version changed to cloudflare-nginx
TLS TTFB optimization (https://www.igvita.com/2013/12/16/optimizing-nginx-tls-time-to-first-byte/), but 1360 buffer size used instead 1400.

- How-to load dynamic modules?
Add the following to the top of /etc/nginx/nginx.conf (for example after pid) and reload nginx.
load_module modules/ndk_http_module.so;
load_module modules/ngx_http_geoip_module.so;
load_module modules/ngx_stream_geoip_module.so;
load_module modules/ngx_http_headers_more_filter_module.so;
load_module modules/ngx_http_image_filter_module.so;
load_module modules/ngx_http_length_hiding_filter_module.so;
load_module modules/ngx_http_lua_module.so;
load_module modules/ngx_http_naxsi_module.so;
load_module modules/ngx_http_js_module.so;
load_module modules/ngx_stream_js_module.so;
load_module modules/ngx_pagespeed.so;
load_module modules/ngx_http_perl_module.so;
load_module modules/ngx_stream_module.so;
load_module modules/ngx_mail_module.so;
load_module modules/ngx_http_rds_json_filter_module.so;
load_module modules/ngx_http_session_binding_proxy_module.so;
load_module modules/ngx_http_testcookie_access_module.so;
load_module modules/ngx_http_upstream_order_module.so;
load_module modules/ngx_http_xslt_filter_module.so;
# ngx_brotli filter module - used to compress responses on-the-fly.
load_module modules/ngx_http_brotli_filter_module.so;
# ngx_brotli static module - used to serve pre-compressed files.
# Both ngx_brotli modules could be used separately, but as part of nginx-module-brotli package
# You possibly don't need libbrotli for ngx_brotli, dependency removed since nginx 1.11.7, but libbrotli package will be saved in repository.
load_module modules/ngx_http_brotli_static_module.so;
load_module modules/ngx_postgres_module.so;
load_module modules/ngx_nchan_module.so;
load_module modules/ngx_http_auth_pam_module.so;
load_module modules/ngx_http_echo_module.so;
load_module modules/ngx_http_upstream_fair_module.so;
load_module modules/ngx_http_cache_purge_module.so;
load_module modules/ngx_http_fancyindex_module.so;
load_module modules/ngx_http_uploadprogress_module.so;
load_module modules/ngx_http_subs_filter_module.so;
load_module modules/ngx_http_graphite_module.so;
load_module modules/ngx_http_vhost_traffic_status_module.so;
load_module modules/ngx_ssl_ct_module.so;
load_module modules/ngx_http_ssl_ct_module.so;
Note: Use only modules you need to use. With dynamic modules this is pretty easy.

Q: Why you switched from stable to mainline builds?
Nginx mainline builds more stable now, and its easier to receive news about new mainline release, even before source is available on nginx.org from nginx mailing list. Stable nginx versions releases became even less frequent, and a lot fixes not imported in stable version, only critical and secure fixes. Main reason I used stable version before, was lifecycle and modules support. But since most 3-rd party modules are dynamic now, is not crucial even if some module will break.

If you want to add your own or someone's nginx module to ppa:
Fast-way: Pull request with changes, better if module will be as git submodule. Don't forget to change rules file and create install rules for module.
Slower way: Create issue request with module description and link to module, and I'll do it myself in spare time.
Module should be dynamic!
Github: https://github.com/cryptofuture/nginx-hda-bundle

Packages names:
nginx, nginx-dbg, nginx-module-devel-kit, nginx-module-geoip, nginx-module-http-headers-more, nginx-module-image-filter, nginx-module-lenght-hiding-filter, nginx-module-lua, nginx-module-naxsi, nginx-module-njs, nginx-module-pagespeed, nginx-module-perl, nginx-module-rds-json, nginx-module-session-binding-proxy, nginx-module-testcookie, nginx-module-upstream-order, nginx-module-xslt, nginx-module-brotli, nginx-module-mail, nginx-module-stream, nginx-module-postgres, nginx-module-nchan, nginx-module-http-auth-pam, nginx-module-http-echo, nginx-module-upstream-fair, nginx-module-cache-purge, nginx-module-fancyindex, nginx-module-upload-progress, nginx-module-http-subs-filter, nginx-module-graphite, nginx-module-vts, nginx-module-ct

Adding this PPA to your system

You can update your system with unsupported packages from this untrusted PPA by adding ppa:hda-me/nginx-stable to your system's Software Sources. (Read about installing)

sudo add-apt-repository ppa:hda-me/nginx-stable
sudo apt-get update
        
Technical details about this PPA

This PPA can be added to your system manually by copying the lines below and adding them to your system's software sources.

Display sources.list entries for:
deb http://ppa.launchpad.net/hda-me/nginx-stable/ubuntu YOUR_UBUNTU_VERSION_HERE main 
deb-src http://ppa.launchpad.net/hda-me/nginx-stable/ubuntu YOUR_UBUNTU_VERSION_HERE main 
Signing key:
4096R/22C31DDB9DAE29B3BCE6EC1F1F5EB010C5341279 (What is this?)
Fingerprint:
22C31DDB9DAE29B3BCE6EC1F1F5EB010C5341279

For questions and bugs with software in this PPA please contact hda_launchpad.

PPA statistics

Activity
0 updates added during the past month.
View package details

Overview of published packages

16 of 6 results
Package Version Uploaded by
libbrotli 5.2-5-ppa7~xenial hda_launchpad (2016-12-14)
libbrotli 5.2-5-ppa7~trusty hda_launchpad (2016-12-14)
nginx 1.13.4-1-ppa7~zesty hda_launchpad (2017-08-12)
nginx 1.13.4-1-ppa7~xenial hda_launchpad (2017-08-12)
nginx 1.13.4-1-ppa7~trusty hda_launchpad (2017-08-12)
nginx 1.13.4-1-ppa7~artful hda_launchpad (2017-08-12)
16 of 6 results

Latest updates

  • nginx 6 weeks ago
    Successfully built
  • nginx 6 weeks ago
    Successfully built
  • nginx 6 weeks ago
    Failed to build: amd64 i386
  • nginx 6 weeks ago
    Successfully built
  • libbrotli 40 weeks ago
    Successfully built