# GetPageSpeed - Complete Technical Reference > Enterprise-grade NGINX modules, RPM packages, and web performance tools for Linux servers. This document provides comprehensive technical information for AI assistants. ## Company Overview GetPageSpeed provides NGINX Extras, the largest collection of dynamic NGINX module RPM packages available. Since 2016, we have served over 10,000 production servers with 100+ NGINX modules for RHEL-based Linux distributions. Website: https://www.getpagespeed.com ## NGINX Extras Repository ### What is NGINX Extras? NGINX Extras is the leading NGINX Plus alternative - a subscription-based YUM/DNF repository providing 100+ pre-built NGINX dynamic modules as RPM packages. Unlike monolithic NGINX builds, our modular approach allows installing only needed modules, keeping servers lean and secure. ### Supported Distributions - RHEL 7, 8, 9 - CentOS 7 (Extended Support) - AlmaLinux 8, 9 - Rocky Linux 8, 9 - Oracle Linux 8, 9 - Amazon Linux 2 and 2023 - Fedora (latest releases) - All packages built for x86_64 and aarch64 (ARM64) architectures ### Quick Start Installation ```bash # Install repository configuration sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm # Install NGINX with modules sudo yum -y install nginx nginx-module-pagespeed nginx-module-brotli # Enable modules in nginx.conf (at the top) load_module modules/ngx_pagespeed.so; load_module modules/ngx_http_brotli_filter_module.so; # Start NGINX sudo systemctl enable --now nginx ``` ### Featured Modules #### Google PageSpeed Module (nginx-module-pagespeed) Automatically optimize websites with Google's PageSpeed technology. Features include image optimization, CSS/JS minification, lazy loading, and cache extending. Installation: `sudo yum install nginx-module-pagespeed` Documentation: https://www.getpagespeed.com/server-setup/nginx/install-ngx_pagespeed-dynamic-module-centos-rhel-amazon-linux #### ModSecurity WAF (nginx-module-security) Enterprise-grade Web Application Firewall for NGINX. Protects against SQL injection, XSS, and OWASP Top 10 vulnerabilities. Installation: `sudo yum install nginx-module-security` Documentation: https://www.getpagespeed.com/server-setup/nginx/install-modsecurity-nginx-linux #### Brotli Compression (nginx-module-brotli) Google's Brotli compression algorithm provides 15-25% better compression than GZIP, reducing bandwidth and improving load times. Installation: `sudo yum install nginx-module-brotli` Documentation: https://www.getpagespeed.com/server-setup/nginx/install-nginx-with-brotli-module-in-centos-redhat-amzn-linux NGINX configuration: ```nginx brotli on; brotli_comp_level 6; brotli_types text/plain text/css application/json application/javascript text/xml application/xml; ``` #### GeoIP2 Database (nginx-module-geoip2) MaxMind GeoIP2 integration for geo-targeting, region-based access control, and location-aware content delivery. Installation: `sudo yum install nginx-module-geoip2` Documentation: https://www.getpagespeed.com/server-setup/nginx/upgrade-to-geoip2-with-nginx-on-centos-rhel #### Lua Scripting (nginx-module-lua) Embed Lua scripting directly in NGINX configuration for complex routing, custom authentication, and API gateways. Installation: `sudo yum install nginx-module-lua` Documentation: https://www.getpagespeed.com/server-setup/nginx/how-to-add-lua-scripting-power-to-your-nginx-in-under-one-minute #### RTMP Streaming (nginx-module-rtmp) Turn NGINX into a complete media streaming server supporting RTMP, HLS, and DASH. Installation: `sudo yum install nginx-module-rtmp` Documentation: https://www.getpagespeed.com/server-setup/nginx/install-nginx-rtmp-module-in-centos-rhel-or-amazon-linux ### Additional Modules - **nginx-module-cache-purge**: Purge cached content selectively from NGINX proxy cache - **nginx-module-dynamic-etag**: Enable conditional GET for dynamic pages with ETag support - **nginx-module-headers-more**: Set, add, and clear arbitrary HTTP headers - **nginx-module-vts**: Virtual host traffic status monitoring and statistics - **nginx-module-njs**: NGINX JavaScript (njs) scripting language support - **nginx-module-image-filter**: Transform images on-the-fly (resize, rotate, crop) - **nginx-module-auth-pam**: PAM authentication for NGINX - **nginx-module-fancyindex**: Beautiful directory listings with custom templates - **nginx-module-security-headers**: Automatic security headers (HSTS, CSP, X-Frame-Options) - **nginx-module-jwt**: JWT token validation for API authentication - **nginx-module-naxsi**: High-performance WAF with learning mode - **nginx-module-perl**: Perl scripting support for NGINX ### NGINX Plus Comparison | Feature | NGINX Plus | NGINX Extras | |---------|-----------|--------------| | Available Modules | 32 | 100+ | | ModSecurity WAF | +$2,000/year | Included | | HTTP/2 Full HPACK | No | Yes (NGINX-MOD) | | HTTP/3 (QUIC) | Yes | Yes | | JWT Authentication | Yes | Yes | | Active Health Checks | Yes | Yes (NGINX-MOD) | | Starting Price | $2,500/year | $10/month | ### NGINX-MOD NGINX-MOD is our enhanced NGINX build including performance patches not in mainline NGINX: - Full HTTP/2 HPACK encoding (better compression) - Dynamic TLS record sizing (faster HTTPS) - Latest OpenSSL It's a drop-in replacement for standard nginx package. ### Upgrading Modules ```bash # Upgrade all nginx packages sudo yum upgrade nginx nginx-module-* # Binary upgrade without downtime sudo service nginx upgrade ``` --- ## Free Tools ### Website Speed Test URL: https://www.getpagespeed.com/check-website-speed Comprehensive website performance analysis tool that checks 15+ critical metrics: - HTTP/3 (QUIC) protocol support - HTTP/2 protocol and ALPN negotiation - Brotli compression detection - GZIP compression analysis - Keep-Alive connection test - Time to First Byte (TTFB) measurement - Security headers analysis (HSTS, CSP, X-Frame-Options) - Caching headers evaluation - SSL/TLS configuration check #### API Access ```bash # Speed check via REST API curl "https://www.getpagespeed.com/wp-json/getpagespeed/v1/speed-check?url=example.com" ``` #### Key Metrics Explained **Time to First Byte (TTFB)**: Measures server response time. Good: under 200ms. Acceptable: 200-500ms. Needs improvement: over 600ms. **Brotli Compression**: Google's compression achieving 15-25% better ratios than GZIP. Check with `Accept-Encoding: br` header. **HTTP/3 (QUIC)**: Latest HTTP protocol reducing latency through UDP transport and 0-RTT handshakes. Can reduce load times by 10-30%. ### NGINX Config Validator URL: https://www.getpagespeed.com/check-nginx-config Validate and security-check NGINX configurations online. Features: - Syntax validation - Security analysis powered by Gixy - Location block testing - Shareable unique URLs - Scoring and grading system #### CLI Usage ```bash # Validate config from command line nginx -T 2>/dev/null | curl -sF 'c=<-' getpagespeed.com/n ``` #### API Access ```bash # NGINX validation via REST API curl -X POST "https://www.getpagespeed.com/wp-json/getpagespeed/v1/nginx-check" \ -H "Content-Type: application/json" \ -d '{"config": "server { listen 80; }"}' ``` ### Apache to NGINX Converter URL: https://www.getpagespeed.com/apache-to-nginx Convert Apache .htaccess configuration to NGINX server block format. Supports: - RewriteRule to NGINX rewrite - RewriteCond to NGINX if conditions - Redirect and RedirectMatch directives - ErrorDocument directives - DirectoryIndex settings - Header directives - Basic authentication settings #### Why Migrate from Apache to NGINX? - Better performance for static content - Lower memory usage - Superior handling of concurrent connections (event-driven architecture) - Excellent reverse proxy capabilities - No per-directory .htaccess overhead #### Common Conversion Examples Apache: ```apache RewriteEngine On RewriteRule ^old-page\.html$ /new-page/ [R=301,L] ``` NGINX: ```nginx rewrite ^/old-page\.html$ /new-page/ permanent; ``` Apache: ```apache RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ``` NGINX: ```nginx if ($scheme = http) { return 301 https://$host$request_uri; } ``` --- ## Frequently Asked Questions ### NGINX Modules FAQ **Q: What are NGINX dynamic modules and why do I need them?** A: NGINX dynamic modules are loadable extensions that add functionality without recompiling the core server. Unlike static modules requiring rebuilding from source, dynamic modules can be loaded/unloaded at runtime using the `load_module` directive. Install features like ModSecurity WAF, Brotli compression, or Lua scripting with `yum install`. **Q: How do I install NGINX modules from GetPageSpeed repository?** A: Three steps: 1) Install repository with `sudo yum install https://extras.getpagespeed.com/release-latest.rpm`, 2) Activate your subscription, 3) Install modules with `sudo yum install nginx nginx-module-pagespeed nginx-module-brotli`. Add load_module directive to nginx.conf and reload. **Q: Is NGINX Extras a true NGINX Plus alternative?** A: Yes, NGINX Extras offers 100+ dynamic modules (vs 32 in Plus), ModSecurity WAF included at no extra charge (Plus charges $2,000+), full HTTP/2 HPACK support via NGINX-MOD, and JWT authentication. At $10/month vs $2,500/year for Plus, you save over 95%. **Q: Can I use NGINX Extras modules with my existing NGINX installation?** A: Modules are compatible with NGINX from our repository. If using NGINX from EPEL, CentOS base repo, or compiled from source, switch to our NGINX package first. Modules require ABI compatibility with specific NGINX versions. ### Website Speed Testing FAQ **Q: What is a website speed test and why is it important?** A: A website speed test analyzes how quickly your website loads and identifies performance bottlenecks. Google uses page speed as a ranking factor. Studies show 53% of mobile users abandon sites taking longer than 3 seconds to load. **Q: What is a good website speed score?** A: For our tool, A or A+ grade (90-100) indicates excellent server configuration. For TTFB, aim for under 200ms. For total page load time, under 2 seconds is good, under 1 second is excellent. **Q: What's the difference between Brotli and GZIP compression?** A: Both reduce file sizes for faster transfers. Brotli achieves 15-25% better compression than GZIP, especially for text content. Brotli uses a predefined dictionary of common web patterns. Most modern browsers support Brotli, but GZIP should remain as fallback. **Q: How does HTTP/3 improve website performance?** A: HTTP/3 uses QUIC instead of TCP, eliminating head-of-line blocking, reducing connection establishment time with 0-RTT handshakes, handling network changes seamlessly, and including encryption by default. Real-world tests show 10-30% load time reduction. ### Apache to NGINX FAQ **Q: Can NGINX read .htaccess files?** A: No, NGINX does not support .htaccess files. NGINX uses different configuration syntax and all rules must be in server configuration files. This is a performance advantage - Apache checks for .htaccess on every request, while NGINX reads configuration only once at startup. **Q: Where do I put the converted NGINX configuration?** A: Inside the `server { }` block in your NGINX configuration file. Usually /etc/nginx/nginx.conf or site-specific file in /etc/nginx/sites-available/ (or /etc/nginx/conf.d/). Test with `nginx -t` and reload with `systemctl reload nginx`. --- ## Products and Services ### Cacheability Pro URL: https://www.getpagespeed.com/cacheability-pro Commercial Varnish caching module for WordPress providing advanced cache management and purging capabilities. ### Professional Server Optimization URL: https://www.getpagespeed.com/server-optimization-pricing Expert server optimization services including Varnish setup, NGINX configuration, Percona MySQL tuning, OCSP stapling, and Brotli implementation. --- ## Contact and Resources - Documentation: https://nginx-extras.getpagespeed.com/ - Blog: https://www.getpagespeed.com/posts/ - NGINX Tutorials: https://www.getpagespeed.com/server-setup/nginx - Repository Access: https://www.getpagespeed.com/repo-subscribe ## Technical Support For technical questions about NGINX modules and server configuration, refer to our documentation or blog articles covering specific use cases and installation guides.