2.5 KiB
wonderfall/nginx
What is this?
It is nginx statically linked against LibreSSL, with the following modules embedded : ngx_brotli (Brotli compression support) and headers_more. Secured by default (no root processes, even the master one), so it should be safe to use.
Features
- Based on Alpine Linux Edge.
- nginx built against LibreSSL.
- nginx : Cloudfare's SPDY patch.
- nginx : Cloudfare's dynamic TLS records patch.
- nginx : securely built using hardening gcc flags.
- nginx : HTTP/2 (+NPN) support.
- nginx : Brotli compression support (and configured).
- nginx : Headers More module.
- nginx : no root master process.
- nginx : AIO Threads support.
- nginx : no unnessary modules (except fastcgi).
- nginx : pcre-jit enabled.
- nginx : optimized configuration.
- ngxpasswd : generates a htpasswd file easily.
- ngxproxy : generates a proxy vhost after asking you a few questions.
Notes
It is required to chown your certs files with the right uid/pid and change the listen
directive to 8000/4430 instead of 80/443. Linux 3.17+, and the latest Docker stable are recommended.
Volumes
- /sites-enabled : vhosts files (*.conf)
- /conf.d : additional configuration files
- /certs : SSL/TLS certificates
- /var/log/nginx : nginx logs
- /passwds : authentication files
- /www : put your websites there
Build-time variables
- NGINX_VERSION : version of nginx
- LIBRESSL_VERSION : version of LibreSSL
- GPG_NGINX : fingerprint of signing key package
- GPG_LIBRESSL : fingerprint of signing key package
- BUILD_CORES : number of cores you'd like to build with (default : all)
Environment variables
- GID : nginx group id (default : 991)
- UID : nginx user id (default : 991)
How to use it?
https://github.com/hardware/mailserver/wiki/Reverse-proxy-configuration
You can use ngxproxy
to generate a vhost through an easy process : docker exec -ti nginx ngxproxy
. ngxpasswd
can generate htpasswd files : docker exec -ti nginx ngxpasswd
. Both utilites are interactive so you won't feel lost.
Some configuration files located in /etc/nginx/conf
are already provided, you can use them with the include
directive.
ssl_params
: Provides a nice balance between compatibility and security.headers_params
: HSTS (+ preload), XSS protection, etc.proxy_params
: use withproxy_pass
.