Compile Nginx with custom modules on latest Debian and Ubuntu
- x86, x64, arm*
- Debian 10 and later
- Ubuntu 18.04 and later
- Latest mainline or stable version, from source
- Optional modules (see below)
- Removed useless modules
- Custom nginx.conf (default does not work)
- Init script for systemd (not provided by default)
- Logrotate conf (not provided by default)
- Block Nginx installation from APT using pinning, to prevent conflicts
- LibreSSL from source (CHACHA20, ALPN for HTTP/2, X25519, P-521)
- OpenSSL from source (TLS 1.3, CHACHA20, ALPN for HTTP/2, X25519, P-521)
- ngx_pagespeed (Google performance module)
- ngx_brotli (Brotli compression algorithm)
- ngx_headers_more (Custom HTTP headers)
- ngx_http_geoip2_module with libmaxminddb and GeoLite2 databases
- ngx_cache_purge (Purge content from FastCGI, proxy, SCGI and uWSGI caches)
- ngx-fancyindex (Fancy indexes module)
- nginx-dav-ext-module (nginx WebDAV PROPFIND,OPTIONS,LOCK,UNLOCK support)
- nginx-module-vts (Nginx virtual host traffic status module)
- See install instructions: nginx-module-vts#installation
- ModSecurity from source (ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx)
- ModSecurity-nginx (ModSecurity v3 Nginx Connector)
- HTTP/3 using Cloudflare's patch with Quiche and BoringSSL.
- ngx_waf (Handy, High performance Nginx firewall module)
Just download and execute the script :
wget https://raw.githubusercontent.com/FuriousWarrior/NginxFastStart/master/nginx-autoinstall.sh
chmod +x nginx-autoinstall.sh
./nginx-autoinstall.sh
You can check configuration examples for the custom modules.
Just select the option when running the script :
You have the choice to delete the logs and the conf.
To update Nginx, run the script and install Nginx again. It will overwrite current Nginx files and/or modules.
The update feature downloads the script from this repository, and overwrites the current nginx-autoinstall.sh
file in the working directory. This allows you to get the latest features, bugfixes, and module versions automatically.
You can run the script without the prompts with the option HEADLESS
set to y
.
HEADLESS=y ./nginx-autoinstall.sh
To install Nginx mainline with Brotli:
HEADLESS=y \
NGINX_VER=2 \
BROTLI=y \
./nginx-autoinstall.sh
To uninstall Nginx and remove the logs and configuration files:
HEADLESS=y \
OPTION=2 \
RM_CONF=y \
RM_LOGS=y \
./nginx-autoinstall.sh
All the default variables are set at the beginning of the script.
A log file is created when running the script. It is located at "/tmp/nginx-autoinstall.log".
MIT LICENSE