cPanel EA4 NGINX Modules
Hoster & MSP partner program
Running ea-nginx on customer servers as a hoster or managed-services provider? One license covers your whole fleet, with a 24-hour rebuild SLA on every cPanel ea-nginx release. Contact us to become a partner.
Single-server operators: see the Ultra subscription for reposync-enabled access.
Why this matters for cPanel hosters
cPanel's ea-nginx is great, but it ships bare. Your customers ask for Brotli, for country blocking, for a WAF, for WordPress cache purging, for WebP on the fly, and you end up saying "not supported" or hand-compiling modules that break on the next ea-nginx update.
GetPageSpeed EA4 fixes that. 140+ production NGINX modules, pre-built against the exact ea-nginx ABI, automatically rebuilt when cPanel updates it, installed with a single dnf command.
You keep cPanel. Your customers get enterprise NGINX. You stop babysitting ABI mismatches.
What you can sell with it
| Customer ask | Module | Package |
|---|---|---|
| "My site is slow" | Brotli compression, 15-25% smaller than gzip | ea-nginx-brotli |
| "WordPress cache won't clear" | Proxy Cache Purge integration | ea-nginx-cache-purge |
| "We're getting attacked" | ModSecurity WAF with OWASP CRS | ea-nginx-modsecurity |
| "Block this country" | GeoIP2 lookups and rules | ea-nginx-geoip2 |
| "Serve WebP automatically" | On-the-fly image conversion | ea-nginx-image-filter |
| "Add/strip response headers" | Header rewriting | ea-nginx-headers-more |
| "Basic bot protection" | NAXSI WAF | ea-nginx-naxsi |
| "Rate limit by cookie/header" | Dynamic rate limiting | ea-nginx-dynamic-limit-req |
| "Nicer directory listing" | Fancy auto-index | ea-nginx-fancyindex |
| "Real visitor IPs behind Cloudflare" | Real IP from trusted proxies | built-in, configured via our snippets |
Full list: 140+ modules, same as our standard repo. If we ship it for nginx, we ship it for ea-nginx.
Why EA4 needs its own packages
cPanel's EasyApache 4 uses a custom ea-nginx build that does not match stock NGINX:
- Module path:
/etc/nginx/modules/instead of/usr/lib64/nginx/modules/ - Config path:
/etc/nginx/conf.d/modules/ - ABI pinning: modules must match the exact
ea-nginxbuild or nginx refuses to load them
Compile it yourself and you own the maintenance. Use our repo and we own it.
Installation
Step 1: Install the GetPageSpeed Repository
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
On cPanel servers the ea4 sub-repo auto-enables itself. Nothing else to do.
Step 2: Install Modules
EA4 packages use the ea-nginx- prefix instead of nginx-module-:
dnf -y install ea-nginx-cache-purge
dnf -y install ea-nginx-brotli
dnf -y install ea-nginx-headers-more
dnf -y install ea-nginx-geoip2
dnf -y install ea-nginx-modsecurity
Then restart nginx:
systemctl restart nginx
That's the whole install.
Package naming
Everything in our main repo has an EA4 twin. Swap the prefix:
| Standard package | EA4 package |
|---|---|
nginx-module-cache-purge |
ea-nginx-cache-purge |
nginx-module-brotli |
ea-nginx-brotli |
nginx-module-headers-more |
ea-nginx-headers-more |
nginx-module-geoip2 |
ea-nginx-geoip2 |
nginx-module-modsecurity |
ea-nginx-modsecurity |
nginx-module-naxsi |
ea-nginx-naxsi |
nginx-module-image-filter |
ea-nginx-image-filter |
Same pattern for the rest of the 140+ catalog.
WordPress cache purging (the killer feature)
If you host WordPress on cPanel, and most cPanel hosters do, this is the one you sell first.
The ea-nginx-cache-purge module pairs with the Proxy Cache Purge WordPress plugin. Customer publishes a post, comments, updates a product, and the affected cache entries are invalidated instantly. No stale pages, no "why is my change not showing?" tickets.
-
Complete Setup Guide
Step by step: NGINX configuration, Proxy Cache Purge plugin, testing, tuning.
Zero-maintenance updates
When cPanel ships a new ea-nginx, our builders detect it and rebuild every module against it, usually within hours. The package version encodes both versions so dnf always picks the right match:
ea-nginx-cache-purge-1.29.4+2.5.5-1.gps.el9
│ │
│ └── Module version (2.5.5)
└── Matches your ea-nginx (1.29.4)
Run dnf upgrade on your normal cadence. Modules stay in lockstep with ea-nginx. You never touch a compiler.
Repository details
| Property | Value |
|---|---|
| Repository ID | getpagespeed-extras-ea4 |
| Base URL | https://extras.getpagespeed.com/redhat/$releasever/ea4/$basearch/ |
| GPG Key | /etc/pki/rpm-gpg/RPM-GPG-KEY-GETPAGESPEED |
| Supported | RHEL / CentOS / AlmaLinux / Rocky 8 and 9 |
Manual repository enable
If auto-detection does not fire (custom cPanel install, weird partitioning), enable it manually:
dnf config-manager --set-enabled getpagespeed-extras-ea4
Or set enabled=1 under the [getpagespeed-extras-ea4] section in /etc/yum.repos.d/getpagespeed-extras.repo.
Selling this to your customers
Three angles that close:
- Speed: Brotli + cache-purge takes TTFB on a typical WordPress site from 400ms to under 100ms. Core Web Vitals pass. Google ranks them higher. They stay on your hosting.
- Security: ModSecurity + NAXSI + GeoIP2 blocks the bulk of automated attacks before they hit PHP. Fewer compromised accounts, fewer support tickets, fewer chargebacks.
- Differentiation: "Enterprise NGINX modules included" is a line your competitors on bare cPanel cannot match without the same repo. Put it on your pricing page.
Get started
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install ea-nginx-cache-purge ea-nginx-brotli ea-nginx-headers-more
systemctl restart nginx
Three commands, enterprise NGINX on cPanel. Talk to us about a hoster license for your whole fleet.