How to install nginx in CentOS/RHEL 7 (x86_64)
High performance web server
Install
sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm sudo yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm sudo yum -y install yum-utils sudo yum-config-manager --enable getpagespeed-extras-mainline sudo yum -y install nginx
Description
nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server.
Compatibility
This package is compatible with all RHEL-based distributions, including CentOS, AlmaLinux, Oracle Linux, Rocky Linux, etc.
RPMs
| Package | Size | Changelog |
|---|---|---|
| nginx-1.31.2-59.el7.gps.x86_64 | 1016 KiB |
Danila Vershinin (2026-06-16) - gps_license: bump to 1.4.0. New identity probe endpoint: send · Accept: application/vnd.getpagespeed.nginx-probe+json on any URL to · receive a 200 + JSON identifying the install (module version, nginx · version, package_source, current status/enforcement, distro, arch). · Doubles as a fleet-inventory + compliance-audit handle. Probe path is · not access-logged, emits no error_log lines, and is invisible on · non-probe requests. Runs at PREACCESS so it answers regardless of · enforcement state. |
| nginx-1.31.1-59.el7.gps.x86_64 | 1015 KiB |
Danila Vershinin (2026-06-16) - gps_license: bump to 1.4.0. New identity probe endpoint: send · Accept: application/vnd.getpagespeed.nginx-probe+json on any URL to · receive a 200 + JSON identifying the install (module version, nginx · version, package_source, current status/enforcement, distro, arch). · Doubles as a fleet-inventory + compliance-audit handle. Probe path is · not access-logged, emits no error_log lines, and is invisible on · non-probe requests. Runs at PREACCESS so it answers regardless of · enforcement state. |
| nginx-1.31.1-58.el7.gps.x86_64 | 1013 KiB |
Danila Vershinin (2026-06-11) - gps_license: bump to 1.3.0. New FOOTER enforcement tier: when the · backend pushes enforcement=footer (or it is set locally), unlicensed · text/html responses get a small fixed-position GetPageSpeed notice · appended; the site stays fully up and the notice disappears once a · valid license token is installed. Default enforcement remains soft; · hard/503 stays reserved for revoked tokens. Filter registers in the · AUX slot so it runs before gzip. |
| nginx-1.31.1-57.el7.gps.x86_64 | 1012 KiB |
Danila Vershinin (2026-05-31) - gps_license: bump to 1.2.0. Operator-facing 503s now point at · /nginx-license-token/ |
| nginx-1.31.1-56.el7.gps.x86_64 | 1012 KiB |
Danila Vershinin (2026-05-31) - gps_license: bump to 1.2.0. Operator-facing 503s now point at · /nginx-license-token/ |
| nginx-1.31.1-55.el7.gps.x86_64 | 1011 KiB |
Danila Vershinin (2026-05-25) - Recall the 2026-04-22 nginx-mod leak: Obsoletes nginx-mod = 3:1.30.0-44 so · hosts that were silently swapped to that exact build during the main-channel · slip self-heal back to stock nginx on `dnf upgrade`. Scoped to the one leaked · NVR (no-op otherwise); no matching Provides (would trip the module Conflicts). |
| nginx-1.31.1-54.el7.gps.x86_64 | 1011 KiB |
Danila Vershinin (2026-05-18) - Bundle nginx-gps SELinux policy: allow outbound HTTPS from httpd_t · (license reporting + future integrations) and bind UDP 443 for HTTP/3. · Paired with `semanage port -a -t http_port_t -p udp 443` in %post for · EL <= 9 where the UDP label is missing. |
| nginx-1.31.1-53.el7.gps.x86_64 | 1011 KiB |
Danila Vershinin (2026-05-18) - Bundle nginx-gps SELinux policy: allow outbound HTTPS from httpd_t · (license reporting + future integrations) and bind UDP 443 for HTTP/3. · Paired with `semanage port -a -t http_port_t -p udp 443` in %post for · EL <= 9 where the UDP label is missing. |
| nginx-1.31.0-53.el7.gps.x86_64 | 1011 KiB |
Danila Vershinin (2026-05-18) - Bundle nginx-gps SELinux policy: allow outbound HTTPS from httpd_t · (license reporting + future integrations) and bind UDP 443 for HTTP/3. · Paired with `semanage port -a -t http_port_t -p udp 443` in %post for · EL <= 9 where the UDP label is missing. |
| nginx-1.31.0-52.el7.gps.x86_64 | 1007 KiB |
Danila Vershinin (2026-05-05) - gps_license: bump to 1.1.1 (host telemetry: distro/arch/package_source). · - gps_license: enable on RHEL >= 8 and Amazon Linux >= 2 (was Fedora / · SUSE / EL7 only). Pass package_source=nginx_rpm via cc_opt. |
| nginx-1.31.0-51.el7.gps.x86_64 | 1007 KiB |
Danila Vershinin (2026-05-05) - gps_license: bump to 1.1.1 (host telemetry: distro/arch/package_source). · - gps_license: enable on RHEL >= 8 and Amazon Linux >= 2 (was Fedora / · SUSE / EL7 only). Pass package_source=nginx_rpm via cc_opt. |
| nginx-1.29.8-51.el7.gps.x86_64 | 997 KiB |
Danila Vershinin (2026-05-05) - gps_license: bump to 1.1.1 (host telemetry: distro/arch/package_source). · - gps_license: enable on RHEL >= 8 and Amazon Linux >= 2 (was Fedora / · SUSE / EL7 only). Pass package_source=nginx_rpm via cc_opt. |
| nginx-1.29.8-50.el7.gps.x86_64 | 995 KiB |
Danila Vershinin (2026-04-19) - Preserve cross-variant nginx service enabled/active state across upgrades · (scan nginx.service and angie.service in %pretrans, restore in %posttrans) |
| nginx-1.29.8-49.el7.gps.x86_64 | 994 KiB |
Danila Vershinin (2026-03-18) - gps_license: mark reporting timer as cancelable to fix stuck workers after reload |