What are NGINX Extras?

The NGINX Extras is our enormous collection of dynamic NGINX module RPM packages, an essential part of the GetPageSpeed repositories.

It allows you to expand the base NGINX functionality from a simple web server to a modern application stack with the support of:

  • the latest technologies like Brotli compression
  • dynamic ETag support
  • automatic security headers
  • ModSecurity
  • PageSpeed
  • Lua scripting and a whole lot more!

We support all the maintained releases of CentOS/RHEL, Amazon Linux, and Fedora Linux. All RHEL derivatives like Oracle Linux, AlmaLinux, and Rocky Linux are supported as well.

NGINX Extras features:

  • Leverage dynamic modules. You can install the bare minimum NGINX or any modules you wish, extending as you need. Not a bloatware NGINX build!
  • Is the largest collection of pre-built dynamic NGINX modules on the Internet in a single repository
  • Allows you to keep SELinux enabled, and avoid the common pitfalls of compiled installs
  • Powered by CDN!

Getting started

Install repository configuration

sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm

Once the repository configuration is installed, activate your subscription to the GetPageSpeed repository.

Subscribed? Proceed with installing the modules to build your ultimate high-performance web stack.

Install NGINX modules

Thanks to the nature of dynamic modules, you can install just the modules you want instead of using bloatware NGINX installation.

For example, to install NGINX and the PageSpeed module for it, run:

sudo yum -y install nginx nginx-module-pagespeed

Then, to enable the module after installation, set up your nginx.conf with the corresponding load_module directive added at the very top, e.g.

load_module modules/ngx_pagespeed.so;

The installer will show you the required load_module directive after installing the module.
Also, you can check the documentation for the same.

Loading the module to NGINX can be done by running systemctl reload nginx provided that your NGINX is already running.
Or simply systemctl start nginx if this is a fresh NGINX installation.

Be sure to follow up with any guide to actually configure your NGINX with the directives that come with a given module.
For example, the PageSpeed module guide.

Upgrading modules

New NGINX releases require upgrading its modules. Thanks to the repository, you don’t need to worry about recompiling anything.
We ship updated NGINX and module packages and you can simply run yum upgrade to get to the latest NGINX and module packages.

After updating a module package, to actually apply it at runtime, you have to run the binary upgrade routine.
This can be done like this:

service nginx upgrade

This ensures that NGINX loads the updated module.

Available NGINX packages

You can consult NGINX Extras documentation for the list of modules available.

In the command line, you can list available modules for installation this way:

sudo yum list available | grep nginx-module

To install the recommended group of modules for performance and security, you may want to run:

sudo yum -y groupinstall "nginx extras recommended"

This installs NGINX, and modules: PageSpeed, Brotli, Dynamic ETag, Immutable (performance); ModSecurity, Security Headers (security).

A list of some of the most interesting module packages follows. In the tables below a package’s name is hyperlinked with either a relevant tutorial by GetPageSpeed, when available, or the project’s homepage.

Package Name Description
nginx-module-pagespeed Google PageSpeed module for NGINX
nginx-module-security ModSecurity connector for NGINX
nginx-module-geoip2 GeoIP2 module for NGINX
nginx-module-brotli Brotli compression for NGINX
nginx-module-lua NGINX module for Lua scripting support
nginx-module-rtmp NGINX RTMP module
nginx-module-cache-purge NGINX Cache Purge module
nginx-module-dynamic-etag NGINX Dynamic ETag module
nginx-module-jpeg Adds overlays (e.g. a logo, visual watermark) on JPEGs when they are requested
nginx-module-headers-more Set, add, and clear arbitrary output headers in NGINX http servers
nginx-module-auth-pam HTTP PAM authentication module
nginx-module-fancyindex Generation of file
listings, like the built-in autoindex module does, but adding
a touch of style

The above table is just for a few of the utmost interest. But there are actually more than 50 modules available.

Complete reference

You can get the complete list of available modules and their documentation in the NGINX Extras documentation.

There’s always more

The base NGINX package which is shipped alongside NGINX Extras repository includes a stable and time-tested NGINX binary runtime.
If you like to live on the edge, there’s a drop-in replacement for that runtime.
Read more about nginx-mod, which runs with latest OpenSSL, patched with full HTTP/2 HPACK support and dynamic TLS records.

Also, performance enthusiasts may be interested in NGINX QUIC packages, enabling websites with HTTP/3 support.

For further details about our RPM repository, see dedicated repository page.

You can provide any feedback and submit/request additional modules to be built in our public NGINX Extras repository.

NGINX Extras vs NGINX Plus feature availability

Feature Description NGINX Plus GetPageSpeed NGINX Extras
NGINX Modules Availability 32 modules Over 50 modules, including PageSpeed, Brotli and exclusive like Dynamic ETag, Security Headers
Packages Availability Only NGINX Modules Hundreds of useful performance and security related packages
Web Application Firewall Yes, ModSecurity for extra $2,000 Yes, ModSecurity, NAXSI or NGX_WAF LTS at no extra charge
JWT authentication Yes Yes, via nginx-module-jwt module package
HTTP/2 Full HPACK support No, slower HTTP/2 Yes, via NGINX-MOD
Active health checks Yes Yes, via NGINX-MOD
Adobe HTTP Dynamic Streaming built-in ngx_http_f4f_module Yes, via nginx-module-f4fhds module package
Pricing Over $2,500 yearly for a single instance $120 yearly for a single IP (includes unlimited machines behind public IP)