Skip to content

Commit

Permalink
Add HTTP/3 QUIC support
Browse files Browse the repository at this point in the history
  • Loading branch information
VirtuBox committed Apr 23, 2024
1 parent 1624a19 commit 5120745
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 16 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

## [Unreleased] - XX-XX-XX

## [3.8.0] - 2024-04-23

### Added

- `--with-http_v3_module` on Mainline release
- Full HTTP/3 QUIC support on Mainline release with LibreSSL

### Changed

- LibreSSL release bumped to 3.8.4

## [3.7.1] - 2023-05-08

### Changed
Expand Down
23 changes: 13 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,22 +45,21 @@ Automated Nginx compilation from sources with additional modules support
* Nginx built-in modules selection
* Nginx Third-party modules selection
* Dynamic modules support
* HTTP/3 QUIC Support with Mainline Release
* Brotli Support
* TLS v1.3 support (Final)
* TLS v1.3 support
* OpenSSL or LibreSSL
* Cloudflare HPACK
* Cloudflare zlib
* Automated nginx updates cronjob
* Compilation with GCC-7/9
* Security hardening and performance optimization enabled with proper GCC flags
* An option to omit nginx configuration, allowing usage of third party devops tools

---

## Additional Third-party modules

Nginx current mainline release : **v1.23.4**
Nginx current stable release : **v1.24.0**
Nginx current mainline release : **v1.25.5** with HTTP/3 QUIC
Nginx current stable release : **v1.24.0** with Cloudflare HTTP/2 HPACK

* [ngx_cache_purge](https://github.com/FRiCKLE/ngx_cache_purge)
* [headers-more-nginx-module](https://github.com/openresty/headers-more-nginx-module)
Expand All @@ -84,7 +83,7 @@ For Nginx http_ssl_module :

Optional modules :

* [naxsi WAF](https://github.com/nbs-system/naxsi)
* [naxsi WAF](https://github.com/wargio/naxsi)
* [nginx-rtmp-module](https://github.com/arut/nginx-rtmp-module)

---
Expand Down Expand Up @@ -120,6 +119,10 @@ Optional modules :
* 17.9.x
* 18.x (Obsidian)

### HTTP/3 QUIC

Full support of HTTP/3 QUIC is only available with Nginx mainline release and compiled with LibreSSL. More information [here](https://nginx.org/en/docs/http/ngx_http_v3_module.html).

---

## Usage
Expand All @@ -128,7 +131,7 @@ Optional modules :

**Default settings** :

* mainline release
* mainline release with HTTP/3
* openssl from system
* without naxsi
* without rtmp
Expand All @@ -155,7 +158,7 @@ bash <(wget -O - vtb.cx/nginx-ee || curl -sL vtb.cx/nginx-ee) --interactive

### Custom installation

Example : Nginx stable release with naxsi
Example : Nginx stable release HTTP/2 with naxsi

```bash
bash <(wget -O - vtb.cx/nginx-ee || curl -sL vtb.cx/nginx-ee) --stable --naxsi
Expand All @@ -165,7 +168,7 @@ bash <(wget -O - vtb.cx/nginx-ee || curl -sL vtb.cx/nginx-ee) --stable --naxsi

Nginx build options :

* `--stable` : compile Nginx stable release
* `--stable` : compile Nginx stable release with HTTP/2
* `--full` : Naxsi + RTMP
* `--dynamic` : Compile Nginx modules as dynamic modules
* `--noconf` : Compile Nginx without any configuring. Useful when you use devops tools like ansible.
Expand Down Expand Up @@ -198,7 +201,7 @@ Extras :
* [x] Add support for LibreSSL
* [x] Add noconf support
* [ ] Add support for config.inc build configuration
* [ ] Add HTTP/3 QUIC support
* [x] Add HTTP/3 QUIC support

---

Expand Down
20 changes: 14 additions & 6 deletions nginx-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# Copyright (c) 2019-2024 VirtuBox <contact@virtubox.net>
# This script is licensed under M.I.T
# -------------------------------------------------------------------------
# Version 3.9.0 - 2024-04-23
# Version 3.8.0 - 2024-04-23
# -------------------------------------------------------------------------

##################################
Expand All @@ -26,19 +26,17 @@ _help() {
echo " -------------------------------------------------------------------- "
echo ""
echo "Usage: ./nginx-ee <options> [modules]"
echo "By default, Nginx-ee will compile the latest Nginx mainline release without Pagespeed, Naxsi or RTMP module"
echo "By default, Nginx-ee will compile the latest Nginx mainline release with HTTP/3 and without Naxsi or RTMP module"
echo " Options:"
echo " -h, --help ..... display this help"
echo " -i, --interactive ....... interactive installation"
echo " --stable ..... Nginx stable release"
echo " --full ..... Nginx mainline release with Nasxi and RTMP module"
echo " --full ..... Nginx with Nasxi and RTMP module"
echo " --dynamic ..... Compile Nginx modules as dynamic"
echo " --noconf ..... Compile Nginx without any configuring. Useful when you use devops tools like ansible."
echo " Modules:"
echo " --naxsi ..... Naxsi WAF module"
echo " --rtmp ..... RTMP video streaming module"
echo " --openssl-dev ..... Compile Nginx with OpenSSL 3.0.0-dev"
echo " --openssl-system ..... Compile Nginx with OpenSSL from system lib"
echo " --libressl ..... Compile Nginx with LibreSSL"
echo ""
return 0
Expand Down Expand Up @@ -325,10 +323,20 @@ echo ""
echo -e " - Nginx release : $NGINX_VER"
[ -n "$OPENSSL_VALID" ] && {
echo -e " - OPENSSL : $OPENSSL_VER"
if [ "$NGINX_RELEASE" = "2" ]; then
echo -e " - HTTP/2 HPACK : YES"
else
echo -e " - with HTTP/3 : YES"
fi

}
[ -n "$LIBRESSL_VALID" ] && {
echo -e " - LIBRESSL : $LIBRESSL_VALID"
echo -e " - HTTP/3 QUIC : $QUIC_VALID"
if [ "$NGINX_RELEASE" = "2" ]; then
echo -e " - HTTP/2 HPACK : YES"
else
echo -e " - HTTP/3 QUIC : YES"
fi
}
echo " - Dynamic modules $DYNAMIC_MODULES_VALID"
echo " - Naxsi : $NAXSI_VALID"
Expand Down

0 comments on commit 5120745

Please sign in to comment.