Skip to main content
Enhanced NGINX Build

NGINX-MOD: The Faster NGINX Build
You Should Be Running

Stock NGINX leaves performance on the table. NGINX-MOD adds HTTP/3, full HPACK, dynamic TLS records, kernel TLS, and active health checks — as a drop-in replacement.

8+
Performance Patches
78%+
HPACK Compression
100+
Compatible Modules
0
Config Changes

HTTP/2 Header Compression: The Difference Is Massive

Stock NGINX uses basic HPACK. NGINX-MOD implements full HPACK encoding from Cloudflare's patch, compressing headers 2.5x better.

Stock NGINX

~30%
Header Compression

NGINX-MOD

78%+
Header Compression

Verify it yourself: h2load https://yoursite.com -n 2 | tail -6 | head -1

Everything Stock NGINX Is Missing

NGINX-MOD patches in the performance and security features that upstream NGINX doesn't include

Built-in

HTTP/3 & QUIC

Full HTTP/3 with QUIC protocol support. Faster connection establishment, zero round-trip resumption, and improved performance on lossy networks.

Exclusive

Full HPACK Encoding

Cloudflare's HPACK patch delivers 78%+ HTTP/2 header compression vs ~30% in stock NGINX. Less bandwidth, faster page loads.

Performance

Dynamic TLS Records

Intelligent TLS record sizing reduces latency on initial page loads while maintaining throughput for large transfers.

Exclusive

Kernel TLS (kTLS)

Offload TLS encryption to the Linux kernel for significantly reduced CPU usage and higher throughput on RHEL 9+ and Fedora.

Enterprise

Active Health Checks

Proactively monitor upstream servers with 6 check types. Automatically remove unhealthy backends and restore them when recovered — no NGINX Plus required.

Unique

Extended Rate Limiting

Rate limit by hour, day, week, month, or year. Stock NGINX only supports per-second and per-minute rates.

Security

Full Server Identity Hiding

Use server_tokens none; to completely remove NGINX from the Server: header and error pages. Stock NGINX cannot do this.

Networking

CONNECT Method Support

Tunnel SSL/TLS requests through NGINX as a forward proxy. Essential for corporate proxy and VPN use cases.

Enterprise

Dynamic Upstream API

Add, remove, and modify upstream servers at runtime through a REST API — no reload required. NGINX Plus-compatible, built-in.

NGINX-MOD vs Stock NGINX

A clear comparison of what NGINX-MOD adds to the table

Feature Stock NGINX NGINX-MOD
HTTP/3 (QUIC)
HTTP/2 Full HPACK (~78% savings)
Dynamic TLS Record Sizing
Kernel TLS (kTLS)
Active Health Checks
Rate Limiting (hour/day/week/year)
server_tokens none;
CONNECT Method Proxy
Dynamic Upstream API (no reload)
TLS 1.3 (Latest OpenSSL) partial
Compatible with 100+ Modules N/A
Drop-in Config Replacement

Upgrade Your NGINX in 60 Seconds

NGINX-MOD is included in the Pro tier alongside 100+ dynamic modules and 10+ exclusive Pro modules.

Subscribe to GetPageSpeed
Pro from $20/month · Cancel anytime · Instant access

Install NGINX-MOD

No compilation, no hassle. Works with your existing configuration.

On RHEL, AlmaLinux, Rocky, Oracle Linux, Amazon Linux, Fedora, or SLES

1

Install the Repository

Add the GetPageSpeed repository and enable NGINX-MOD.

# Install the GetPageSpeed repo
sudo yum -y install \
  https://extras.getpagespeed.com/release-latest.rpm

# Enable NGINX-MOD
sudo yum-config-manager \
  --enable getpagespeed-extras-nginx-mod
2

Install NGINX-MOD

Install the enhanced build along with any modules you need.

# Fresh install with modules
sudo yum -y install nginx \
  nginx-module-brotli \
  nginx-module-pagespeed
3

Start & Verify

Enable NGINX and verify HPACK compression is working.

# Start NGINX
sudo systemctl enable --now nginx

# Verify HPACK
h2load https://yoursite.com -n 2

On EL8+, dnf can be used in place of yum. If yum-config-manager is not found, install it: sudo yum -y install yum-utils

On Ubuntu 22.04 / 24.04 or Debian 12

1

Add the Keyring & APT Source

Trust the GetPageSpeed signing key and add the nginx-mod APT suite for your codename.

# Trust the signing key
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://extras.getpagespeed.com/deb-archive-keyring.gpg \
  | sudo tee /etc/apt/keyrings/getpagespeed.gpg >/dev/null

# Replace ${distro} with ubuntu or debian,
# ${codename} with jammy / noble / bookworm
sudo tee /etc/apt/sources.list.d/getpagespeed-extras.list <<EOF
deb [signed-by=/etc/apt/keyrings/getpagespeed.gpg] https://extras.getpagespeed.com/${distro} ${codename}-nginx-mod main
deb [signed-by=/etc/apt/keyrings/getpagespeed.gpg] https://extras.getpagespeed.com/${distro} ${codename} main
EOF
2

Install NGINX-MOD

Installing nginx-mod automatically swaps out any existing nginx package (it declares Conflicts: nginx).

# Refresh APT and install
sudo apt-get update
sudo apt-get install nginx-mod

# Optional: install dynamic modules
# from the stable suite (ABI-compatible)
sudo apt-get install \
  nginx-module-brotli \
  nginx-module-geoip2
3

Start & Verify

Enable NGINX and verify HPACK compression is working.

# Start NGINX
sudo systemctl enable --now nginx

# Verify HPACK (apt install nghttp2)
h2load https://yoursite.com -n 2

Launch matrix: Ubuntu 22.04 (jammy), Ubuntu 24.04 (noble), Debian 12 (bookworm). Both amd64 and arm64.
Recommended: pin GetPageSpeed packages with /etc/apt/preferences.d/getpagespeed-nginx.pref at priority 1001 — see the APT setup docs.

Switching To & From NGINX-MOD

NGINX-MOD is a drop-in replacement. Switch in either direction without losing your configuration or modules.

Switch to NGINX-MOD RHEL family

Already running stable or mainline NGINX from GetPageSpeed? Switch without losing your configuration or modules:

# Disable mainline, enable NGINX-MOD
sudo yum-config-manager \
  --disable getpagespeed-extras-mainline
sudo yum-config-manager \
  --enable getpagespeed-extras-nginx-mod

# Swap to NGINX-MOD in place
# (modules are kept automatically)
sudo yum -y swap nginx nginx-mod

# Re-enable the service
sudo systemctl enable --now nginx

Switch Back to Stable NGINX RHEL family

Revert to the standard stable NGINX package while preserving your existing configuration:

# Disable NGINX-MOD and mainline repos
sudo yum-config-manager \
  --disable getpagespeed-extras-nginx-mod
sudo yum-config-manager \
  --disable getpagespeed-extras-mainline

# Remove nginx-mod from RPM DB only
sudo rpm --erase --justdb \
  --nodeps nginx-mod

# Install stable NGINX
sudo yum -y install nginx
sudo yum history sync

# Re-enable the service
sudo systemctl enable --now nginx

Switch to NGINX-MOD Ubuntu / Debian

Add the nginx-mod APT suite alongside the stable suite. Installing nginx-mod auto-swaps the stable nginx package via APT's Conflicts resolution:

# Add the nginx-mod suite for your codename
sudo tee /etc/apt/sources.list.d/getpagespeed-extras.list <<EOF
deb [signed-by=/etc/apt/keyrings/getpagespeed.gpg] https://extras.getpagespeed.com/${distro} ${codename}-nginx-mod main
deb [signed-by=/etc/apt/keyrings/getpagespeed.gpg] https://extras.getpagespeed.com/${distro} ${codename} main
EOF

# Swap in NGINX-MOD
sudo apt-get update
sudo apt-get install nginx-mod

# Re-enable the service
sudo systemctl enable --now nginx

Switch Back to Stable NGINX Ubuntu / Debian

Drop the nginx-mod suite line and reinstall stable nginx in a single APT transaction (the trailing - after nginx-mod removes it):

# Drop the nginx-mod suite line
sudo sed -i '/-nginx-mod main/d' \
  /etc/apt/sources.list.d/getpagespeed-extras.list
sudo apt-get update

# Remove nginx-mod + install stable nginx
sudo apt-get install nginx nginx-mod-

# Re-enable the service
sudo systemctl enable --now nginx

On EL8+, dnf can be used in place of yum. If yum-config-manager is not found, install it: sudo yum -y install yum-utils

NGINX-MOD: Frequently Asked Questions

Everything you need to know about the faster NGINX build

NGINX-MOD is an enhanced NGINX build maintained by GetPageSpeed. It includes performance patches from Cloudflare (full HPACK encoding, dynamic TLS records), HTTP/3 QUIC support, kernel TLS offloading, active health checks, and extended rate limiting. It uses the latest stable NGINX as its base and is a drop-in replacement — your existing nginx.conf works without changes.
Yes. NGINX-MOD is fully compatible with all 100+ dynamic modules in the GetPageSpeed repository. You can install modules like PageSpeed, Brotli, ModSecurity, GeoIP2, Lua, and more using the same yum install nginx-module-* commands. No recompilation needed.
Yes. Switching is a simple package swap that preserves your existing configuration and installed modules. Enable the NGINX-MOD repository, run yum swap nginx nginx-mod, then systemctl enable --now nginx. This works whether you are on stable or mainline NGINX. Your config files remain untouched.
NGINX-MOD ships for all maintained RHEL-based distributions (RHEL 7-10, CentOS 7, AlmaLinux 8-10, Rocky Linux 8-10, Oracle Linux 8-10, Amazon Linux 2 and 2023, Fedora, and SLES 15/16) and for the Debian/Ubuntu family: Ubuntu 22.04 (jammy), Ubuntu 24.04 (noble), and Debian 12 (bookworm). All builds cover both x86_64 and aarch64 (ARM64).
The performance gains depend on your workload. HTTP/2 HPACK encoding alone can achieve 78%+ header compression (vs ~30% stock), reducing bandwidth significantly. Dynamic TLS records improve HTTPS latency on initial connections. Kernel TLS offloads encryption to hardware, freeing CPU for your application. For most production workloads, you will see measurable improvements in both latency and throughput.
No additional fees. NGINX-MOD is included in the Pro tier and above (Pro, Ultra, Enterprise) at $20/month. The entry-level Plus tier at $10/month covers the full open-source modules catalog but not NGINX-MOD. See /repo-subscribe for the full tier comparison.

Stop Leaving Performance on the Table

NGINX-MOD is the NGINX build your servers deserve. Get it today with a GetPageSpeed subscription and unlock 100+ dynamic modules.

Subscribe Now — Pro from $20/mo
Trusted by 10,000+ production servers · Cancel anytime · All RHEL-based distros supported