NGINX modules for Plesk — $5/mo, half the Plus price
A dozen sw-nginx-module-* packages built for Plesk's sw-nginx ABI. RTMP streaming, security headers, Brotli, dynamic ETag and more — installable with one yum install, enabled with one plesk sbin nginx_modules_ctl.
What is NGINX Extras for Plesk?
A focused subscription channel for one audience: Plesk control-panel admins. The Plesk-shipped NGINX (sw-nginx) is a separate binary with its own ABI, so it cannot load the modules we build for stock NGINX. We solve that by maintaining a parallel build of every relevant module against sw-nginx, shipped under the sw- prefix.
The end result: extend the bare NGINX Plesk gave you into a modern application stack — without leaving the panel, recompiling anything, or disabling SELinux.
- Dynamic modules — install only what you need, no bloatware
- The largest pre-built collection of Plesk-compatible NGINX modules anywhere
- SELinux stays enforcing — no compiled-install pitfalls
- CDN-powered package delivery
Quick install example
# 1. Add the repository
sudo yum -y install \
https://extras.getpagespeed.com/release-latest.rpm
# 2. Activate your subscription at
# https://www.getpagespeed.com/plesk-subscribe
# 3. Install a module — e.g. Dynamic ETag
sudo yum -y install sw-nginx-module-dynamic-etag
# 4. Enable it via Plesk's supported command
sudo plesk sbin nginx_modules_ctl \
--enable dynamic-etag
No compilation | SELinux enforcing | Plesk-safe
Featured Plesk-compatible NGINX modules
Each installable with one yum install sw-nginx-module-<handle> and enabled via plesk sbin nginx_modules_ctl.
RTMP Streaming
sw-nginx-module-rtmpTurn the NGINX shipped with Plesk into a complete media streaming server. Live streaming, HLS/DASH output, recording, transcoding hooks — without leaving the Plesk control panel.
Automatic Security Headers
sw-nginx-module-security-headersEmit HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options and friends automatically. One module, every Plesk-managed vhost hardened.
Brotli Compression
sw-nginx-module-brotliGoogle's Brotli — 15-25% better than gzip on text content. Reduces bandwidth and Largest Contentful Paint without re-encoding upstream responses.
Dynamic ETag
sw-nginx-module-dynamic-etagConditional GET for dynamic pages. NGINX hashes the response body and returns 304 Not Modified when the client already has the latest version — instant bandwidth savings on busy WordPress / WooCommerce sites.
GeoIP2
sw-nginx-module-geoip2MaxMind GeoIP2 for the NGINX shipped with Plesk. Geo-targeting, region-based access control, and location-aware rewrites without compiling NGINX yourself.
Cache Purge
sw-nginx-module-cache-purgeSelective purge of NGINX proxy_cache entries — close the gap with Varnish without leaving the Plesk stack. Integrates cleanly with WordPress cache-purge plugins.
Plus 10+ more sw-nginx modules
Specialised modules for streaming, load balancing, scripting, monitoring
sw-nginx-module-auth-pam
HTTP authentication via Linux PAM
sw-nginx-module-headers-more
Set, add, and clear arbitrary HTTP headers
sw-nginx-module-fancyindex
Stylish directory listings (custom templates)
sw-nginx-module-jpeg
On-the-fly JPEG overlays (logos, watermarks)
sw-nginx-module-immerse
Inline asset embedding for faster first paint
sw-nginx-module-postgres
Direct PostgreSQL query handling from NGINX
sw-nginx-module-stream-lua
Lua scripting for stream (L4) blocks
sw-nginx-module-sysguard
Reject requests when load/memory exceed thresholds
sw-nginx-module-upstream-fair
Fair load balancing across upstreams
sw-nginx-module-flv
Pseudo-streaming for FLV media
NGINX modules for Plesk vs NGINX Plus
NGINX Plus is not Plesk-compatible. This is.
| Feature | NGINX Plus | NGINX modules for Plesk |
|---|---|---|
| Plesk control-panel compatibility | Not compatible | Compatible — built for sw-nginx |
| Module count | 32 | 50+ sw-nginx-module-* packages |
| Exclusive modules | — | Dynamic ETag, Security Headers, Cache Purge |
| SELinux enforcing | N/A on Plesk | Yes — shipped contexts + companion SELinux RPMs |
| JWT authentication | Yes | Yes, via sw-nginx-module-jwt |
| RTMP / HLS streaming | — | Yes, via sw-nginx-module-rtmp |
| Starting price | $3,675+/yr per instance | $5/mo per server |
Get a module installed in under 3 minutes
From repo to enabled inside the Plesk-managed NGINX
Install the repository
Adds getpagespeed-extras-plesk as a yum source.
sudo yum -y install \
https://extras.getpagespeed.com/release-latest.rpm
Activate the $5/mo Plesk tier
Enter the server's public IP at checkout.
Subscribe — /plesk-subscribeInstall & enable a module
Example: Dynamic ETag for conditional GET.
sudo yum -y install \
sw-nginx-module-dynamic-etag
sudo plesk sbin nginx_modules_ctl \
--enable dynamic-etag
$5/mo or $50/yr · cancel anytime
Where to put NGINX directives so Plesk does not eat them
The control panel rewrites parts of the NGINX configuration on routine actions. Where you place your directives decides whether they survive the next Plesk update.
Per-vhost (one website)
In the Plesk UI: Websites & Domains → pick the site → Hosting & DNS → Apache & nginx Settings → paste under Additional nginx directives. Plesk stores these in its own templates and reapplies them on every reconfig.
Globally inside http {}
Create /etc/nginx/conf.d/custom.conf. Plesk leaves conf.d/ alone; everything you put there is included in the main http {} block.
Globally outside http {} (e.g. RTMP)
Some modules (RTMP is the obvious one) need directives at the top level of nginx.conf, not inside http {}. Put those in /etc/nginx/modules.conf.d/zzz_custom.conf — the zzz_ prefix guarantees the file loads after NGINX has loaded the dynamic modules themselves, so the new directives are recognised.
Frequently asked questions
Everything Plesk admins ask before subscribing
Because it is a strictly narrower product. The Plesk channel ships only sw-nginx-module-* packages built for Plesk's sw-nginx ABI — about a dozen modules. The Plus tier opens our full extras repository (100+ modules, plus dependencies and tools), most of which cannot load in sw-nginx anyway.
Carving Plesk out as its own tier prices the actual delivered value rather than charging for shelf space you can't use.
Yes — keep the Plesk-shipped sw-nginx exactly as Plesk installed it. Our packages are add-on modules for that same sw-nginx, never replacements. Enable them via the supported Plesk command:
sudo plesk sbin nginx_modules_ctl --enable <module>Plesk updates will not strip the modules; the install paths are designed to survive routine Plesk upgrades.
Yes — that is a key reason to use packaged modules instead of compiling your own. Every package ships with the right SELinux file contexts and (where needed) a matching *-selinux companion package. You should never have to set setenforce 0 or relabel files by hand.
Yes. We support the same RPM-based operating systems Plesk supports: RHEL, CentOS, AlmaLinux, Rocky Linux, CloudLinux, Amazon Linux, on EL7 / EL8 / EL9 / EL10. Both x86_64 and aarch64 (ARM64) builds are published.
No — the Plesk channel is RPM-only. We don't build sw-nginx-module-* packages for .deb-based Plesk hosts, so this tier delivers nothing on Ubuntu or Debian. If you run Plesk on Ubuntu/Debian and want extra nginx modules, the stock nginx modules from a regular Plus subscription are the right fit instead.
Drop your subscription and re-subscribe to the regular Plus tier at that point — the stock-nginx repo channel covers everything you would need. The Plesk tier is intentionally specific to sw-nginx; there is no point paying for it once you no longer run Plesk.
Per the IP address of the server you list at checkout — the same mechanism used by every other GetPageSpeed subscription. yum / dnf requests from that IP get authorised; everything else is rejected at the repository layer. No license keys, no JWT, no environment files.
Ready to extend Plesk's NGINX?
$5/mo or $50/yr · one IP per subscription · cancel anytime
Subscribe — /plesk-subscribe