/nginx-http3

nginx with HTTP3

Primary LanguageDockerfileGNU General Public License v3.0GPL-3.0

nginx-http3

nginx binary is built from quic

Usage

Uses the brotli module documentation

nginx Settings

  • built-in nginx modules

  • headers-more-nginx-module - sets and clears HTTP request and response headers

  • ngx_brotli - adds brotli response compression

  • ngx_http_geoip2_module - creates variables with values from the maxmind geoip2 databases based on the client IP

  • nginx_cookie_flag_module - This module for Nginx allows to set the flags "HttpOnly", "secure" and "SameSite" for cookies in the "Set-Cookie" upstream response headers. The register of letters for the flags doesn't matter as it will be converted to the correct value. The order of cookie declaration among multiple directives doesn't matter too. It is possible to set a default value using symbol "*". In this case flags will be added to the all cookies if no other value for them is overriden

  • njs module - a subset of the JavaScript language that allows extending nginx functionality

SSL Handling

DHE ciphers fetched and stored in /etc/ssl/dhparam.pem:

  ssl_dhparam /etc/ssl/dhparam.pem;

nginx Config Files

  • .conf files mounted in /etc/nginx/main.d will be included in the main nginx context (e.g. you can call env directive there)

  • .conf files mounted in /etc/nginx/conf.d will be included in the http nginx context

QUIC + HTTP/3 support

Refer default-config/https.conf config file for an example config.

Refer to docker.sh script on how to run this container and properly mount required config files and assets.

Development

Building Image:

DOCKER_BUILDKIT=1 docker build . -t nginx-http3-test