08-04-2023, 04:05 PM
在所有受支持的 Linux 发行版上安装和升级 NGINX Plus,并使用基本包和动态模块的分步说明。
本文介绍如何在 Amazon Linux、AlmaLinux、CentOS、Debian、FreeBSD、Oracle Linux、Rocky Linux、Red Hat Enterprise Linux (RHEL)、SUSE Linux Enterprise Server (SLES) 和 Ubuntu 上安装 NGINX Plus。
先决条件
在 Amazon Linux 2023 上安装 NGINX Plus
NGINX Plus 可以安装在 Amazon Linux 2023(x86_64、aarch64)上。
在 Amazon Linux 2 上安装 NGINX Plus
NGINX Plus 可以安装在 Amazon Linux 2 LTS(x86_64、aarch64)上。
在 RHEL 7.4+、CentOS RHEL 7.4+ 和 Oracle Linux 7.4+ 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 CentOS/Oracle Linux/RHEL 上:
在 RHEL 8.1+、Oracle Linux 8.1+、AlmaLinux 8、Rocky Linux 8 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 CentOS/RHEL 上:
在 RHEL 9.0+、Oracle Linux 9、AlmaLinux 9、Rocky Linux 9 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 CentOS/RHEL 上:
在 Debian 或 Ubuntu 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 Debian 或 Ubuntu 上:
在 FreeBSD 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 FreeBSD 上:
要在 FreeBSD 上安装 NGINX Plus:
在 SUSE Linux Enterprise Server 上安装 NGINX Plus
NGINX Plus 可以安装在 SUSE Linux Enterprise Server 12 SP5 (x86_64)、15 SP2 (x86_64) 上。
要在 SLES 上安装 NGINX Plus:
在 Alpine Linux 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 Alpine Linux 上:
要在 Alpine Linux 上安装 NGINX Plus:
安装动态可加载模块
NGINX Plus 功能可以通过预构建包中未包含的动态可加载模块进行扩展:
NGINX 创作的动态模块 – 由 F5, Inc. 编写和维护的模块。直接从官方存储库安装这些模块:
NGINX 认证的社区动态模块 – NGINX 测试和分发的流行第三方模块,NGINX 为其提供安装和基本配置支持。直接从官方存储库安装这些模块:
社区动态模块 – 由 NGINX 社区的第三方成员编写和分发的模块。从作者的存储库下载源代码,并根据与您的 NGINX Plus 版本对应的NGINX 开源版本进行编译。有关列表,请参阅NGINX Wiki。
从官方存储库安装动态模块
NGINX 创作和 NGINX 认证的动态模块可以直接从模块存储库安装。要安装模块:
有关每个动态模块的详细安装说明,请参阅NGINX Plus 动态模块。
请注意,由于操作系统限制,某些模块不适用于某些操作系统版本。有关模块的详细信息和说明,请参阅NGINX Plus 技术规范。
安装该模块后,您需要在 NGINX Plus 配置文件中启用它。有关详细信息,请参阅启用动态模块。
安装 NGINX 社区模块
为了使社区动态模块能够与 NGINX Plus 一起使用,它必须与相应的 NGINX 开源版本一起编译。
启用动态模块
动态模块位于/etc/nginx/modules目录中,该目录是在 NGINX Plus 安装时自动创建的。
要启用动态模块:
NGINX Plus 非特权安装
在某些环境中,出于安全限制,对 root 帐户的访问受到限制。如果您使用的是 Linux 操作系统,如果没有 root 权限,您将无法运行 NGINX Plus 安装的包管理器。
作为解决方法,在此类环境中,可以使用特殊脚本来安装 NGINX Plus,该脚本修改 NGINX Plus 配置文件以从非 root 用户运行。该脚本还:
与 NGINX Plus 的常规安装相比,非特权安装有一些局限性和限制:
该脚本可以在以下操作系统上运行
在开始非特权安装之前,请确保您具备先决条件部分中列出的所有先决条件(特权除外root)。对于基于 RPM 的发行版,请确保您已rpm2cpio安装。
要执行 NGINX Plus 的非特权安装:
使用此脚本,您还可以在提供的环境中升级 NGINX Plus 的现有非特权安装。可选-y选项执行强制升级而不进行任何确认:
升级 NGINX Plus
要将 NGINX Plus 安装升级到最新版本:
要验证新的 NGINX Plus 版本是否正在运行,请运行:
升级 NGINX Plus 模块
升级过程取决于模块的提供和安装方式。
本文介绍如何在 Amazon Linux、AlmaLinux、CentOS、Debian、FreeBSD、Oracle Linux、Rocky Linux、Red Hat Enterprise Linux (RHEL)、SUSE Linux Enterprise Server (SLES) 和 Ubuntu 上安装 NGINX Plus。
先决条件
- NGINX Plus 订阅(已购买或试用)
- 支持的操作系统
- root特权
- 您的MyF5 客户门户凭据,由 F5, Inc. 的电子邮件提供。
- 您的 NGINX Plus 证书和公钥(nginx-repo.crt和nginx-repo.key文件)由 F5, Inc. 的电子邮件提供。
在 Amazon Linux 2023 上安装 NGINX Plus
NGINX Plus 可以安装在 Amazon Linux 2023(x86_64、aarch64)上。
- 如果您安装了较旧的 NGINX Plus 软件包,建议备份配置和日志文件。详细信息请参见“升级 NGINX Plus ”。
- 创建/etc/ssl/nginx目录:
代码:sudo mkdir -p /etc/ssl/nginx
[*]cd /etc/ssl/nginx - 登录MyF5 客户门户并下载nginx-repo.crt和nginx-repo.key文件。
- 安装所需的ca 证书依赖项:
代码:sudo yum install ca-certificates
- 将nginx-repo.crt和nginx-repo.key文件复制到 Amazon Linux 服务器的/etc/ssl/nginx/目录中:
代码:sudo cp nginx-repo.crt /etc/ssl/nginx/
[*]sudo cp nginx-repo.key /etc/ssl/nginx/ - 通过将plus-amazonlinux2023.repo文件下载到/etc/yum.repos.d来添加 NGINX Plus 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/plus-amazonlinux2023.repo
- 如果您有 NGINX ModSecurity 订阅,请通过将modsecurity-amazonlinux2023.repo文件下载到/etc/yum.repos.d来添加 ModSecurity 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/modsecurity-amazonlinux2023.repo
- 如果您想启用实验性 QUIC 支持,请通过将plus-quic-amazonlinux2023.repo文件下载到/etc/yum.repos.d来添加 NGINX Plus QUIC 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/plus-quic-amazonlinux2023.repo
- 安装nginx-plus软件包。任何较旧的 NGINX Plus 软件包都会被自动替换。
代码:sudo yum install nginx-plus
- 如果您有 NGINX ModSecurity 订阅,请安装 ModSecurity 包:
代码:sudo yum install nginx-plus nginx-plus-module-modsecurity
- 对于实验性 QUIC 支持,请安装 NGINX Plus QUIC 包:
代码:sudo yum install nginx-plus-quic
- 检查nginx二进制版本以确保您已正确安装 NGINX Plus:
代码:nginx -v
- 如果您的基础架构中使用NGINX Management Suite 实例管理器,请安装并启用 NGINX 代理。有关详细信息,请参阅安装和配置 NGINX 代理。
在 Amazon Linux 2 上安装 NGINX Plus
NGINX Plus 可以安装在 Amazon Linux 2 LTS(x86_64、aarch64)上。
- 如果您安装了较旧的 NGINX Plus 软件包,建议备份配置和日志文件。详细信息请参见“升级 NGINX Plus ”。
- 创建/etc/ssl/nginx目录:
代码:sudo mkdir -p /etc/ssl/nginx
[*]cd /etc/ssl/nginx - 登录MyF5 客户门户并下载nginx-repo.crt和nginx-repo.key文件。
- 安装所需的ca 证书依赖项:
代码:sudo yum install ca-certificates
- 将nginx-repo.crt和nginx-repo.key文件复制到/etc/ssl/nginx/目录:
代码:sudo cp nginx-repo.crt /etc/ssl/nginx/
[*]sudo cp nginx-repo.key /etc/ssl/nginx/ - 通过将nginx-plus-amazon2.repo文件下载到/etc/yum.repos.d来添加 NGINX Plus 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-amazon2.repo
- 如果您想启用实验性 QUIC 支持,请通过将文件plus-quic-amazon2.repo下载到/etc/yum.repos.d来添加 NGINX Plus QUIC 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/plus-quic-amazon2.repo
- 安装nginx-plus软件包。任何较旧的 NGINX Plus 软件包都会被自动替换。
代码:sudo yum install nginx-plus
- 如果您有 NGINX ModSecurity 订阅,请安装 ModSecurity 包:
代码:sudo yum install nginx-plus nginx-plus-module-modsecurity
- 对于实验性 QUIC 支持,请安装 NGINX Plus QUIC 包:
代码:sudo yum install nginx-plus-quic
- 检查nginx二进制版本以确保您已正确安装 NGINX Plus:
代码:nginx -v
- 如果您的基础架构中使用NGINX Management Suite 实例管理器,请安装并启用 NGINX 代理。有关详细信息,请参阅安装和配置 NGINX 代理。
在 RHEL 7.4+、CentOS RHEL 7.4+ 和 Oracle Linux 7.4+ 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 CentOS/Oracle Linux/RHEL 上:
- CentOS 7.4+(x86_64、aarch64)
- Oracle Linux 7.4+ (x86_64)
- 红帽企业 Linux 7.4+(x86_64、aarch64)
- 如果您安装了较旧的 NGINX Plus 软件包,建议备份配置和日志文件。详细信息请参见“升级 NGINX Plus ”。
- 创建/etc/ssl/nginx目录:
代码:sudo mkdir -p /etc/ssl/nginx
[*]cd /etc/ssl/nginx - 登录MyF5 客户门户并下载nginx-repo.crt和nginx-repo.key文件。
- 将文件复制到/etc/ssl/nginx/目录:
代码:sudo cp nginx-repo.crt /etc/ssl/nginx/
[*]sudo cp nginx-repo.key /etc/ssl/nginx/ - 安装所需的ca 证书依赖项:
代码:sudo yum install ca-certificates
- 如果您有 NGINX App Protect 订阅,请安装epel-release依赖项:
代码:sudo yum install epel-release
- 通过将nginx-plus-7.4.repo文件下载到/etc/yum.repos.d来添加 NGINX Plus 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-7.4.repo
- 如果您订阅了 NGINX App Protect,请通过将app-protect-7.repo文件下载到/etc/yum.repos.d来添加 NGINX App Protect 存储库:
代码:$ sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/app-protect-7.repo
- 如果您订阅了 NGINX ModSecurity,请通过将modsecurity-7.repo文件下载到/etc/yum.repos.d来添加 NGINX ModSecurity 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/modsecurity-7.repo
- 安装nginx-plus软件包。任何较旧的 NGINX Plus 软件包都会被自动替换。
代码:sudo yum install nginx-plus
- 如果您订阅了 NGINX App Protect,请安装 NGINX App Protect 及其签名:
代码:sudo yum install nginx-plus app-protect app-protect-attack-signatures
- 如果您有 NGINX ModSecurity 订阅,请安装 ModSecurity 包:
代码:sudo yum install nginx-plus nginx-plus-module-modsecurity
- 要启用 nginx 服务在启动时启动,请运行以下命令:
代码:sudo systemctl enable nginx.service
- 检查nginx二进制版本以确保您已正确安装 NGINX Plus:
代码:nginx -v
- 如果您的基础架构中使用NGINX Management Suite 实例管理器,请安装并启用 NGINX 代理。有关详细信息,请参阅安装和配置 NGINX 代理。
在 RHEL 8.1+、Oracle Linux 8.1+、AlmaLinux 8、Rocky Linux 8 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 CentOS/RHEL 上:
- 红帽企业 Linux 8.1+(x86_64、aarch64、s390x)
- Oracle Linux 8.1+(x86_64、aarch64)
- AlmaLinux 8.6+(x86_64,aarch64)
- 洛基 Linux 8.6+(x86_64、aarch64)
- 如果您安装了较旧的 NGINX Plus 软件包,建议备份配置和日志文件。详细信息请参见“升级 NGINX Plus ”。
- 创建/etc/ssl/nginx目录:
代码:sudo mkdir -p /etc/ssl/nginx
[*]cd /etc/ssl/nginx - 登录MyF5 客户门户并下载nginx-repo.crt和nginx-repo.key文件。
- 将文件复制到/etc/ssl/nginx/目录:
代码:sudo cp nginx-repo.crt /etc/ssl/nginx/
[*]sudo cp nginx-repo.key /etc/ssl/nginx/ - 安装所需的ca 证书依赖项:
代码:sudo yum install ca-certificates
- 通过将nginx-plus-8.repo文件下载到/etc/yum.repos.d来添加 NGINX Plus 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-8.repo
- 如果您订阅了 NGINX ModSecurity,请通过将modsecurity-8.repo文件下载到/etc/yum.repos.d来添加 NGINX ModSecurity 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/modsecurity-8.repo
- 如果您想启用实验性 QUIC 支持,请通过将文件plus-quic-8.repo下载到/etc/yum.repos.d来添加 NGINX Plus QUIC 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/plus-quic-8.repo
- 安装nginx-plus软件包。任何较旧的 NGINX Plus 软件包都会被自动替换。
代码:sudo yum install nginx-plus
- 如果您有 NGINX ModSecurity 订阅,请安装 ModSecurity 包:
代码:sudo yum install nginx-plus nginx-plus-module-modsecurity
- 对于实验性 QUIC 支持,请安装 NGINX Plus QUIC 包:
代码:sudo yum install nginx-plus-quic
- 要启用 nginx 服务在启动时启动,请运行以下命令:
代码:sudo systemctl enable nginx.service
- 检查nginx二进制版本以确保您已正确安装 NGINX Plus:
代码:nginx -v
- 如果您的基础架构中使用NGINX Management Suite 实例管理器,请安装并启用 NGINX 代理。有关详细信息,请参阅安装和配置 NGINX 代理。
在 RHEL 9.0+、Oracle Linux 9、AlmaLinux 9、Rocky Linux 9 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 CentOS/RHEL 上:
- 红帽企业 Linux 9.0+(x86_64、aarch64、s390x)
- Oracle Linux 9 (x86_64)
- AlmaLinux 9(x86_64,aarch64)
- 洛基 Linux 9(x86_64、aarch64)
- 如果您安装了较旧的 NGINX Plus 软件包,建议备份配置和日志文件。详细信息请参见“升级 NGINX Plus ”。
- 创建/etc/ssl/nginx目录:
代码:sudo mkdir -p /etc/ssl/nginx
[*]cd /etc/ssl/nginx - 登录MyF5 客户门户并下载nginx-repo.crt和nginx-repo.key文件。
- 将文件复制到/etc/ssl/nginx/目录:
代码:sudo cp nginx-repo.crt /etc/ssl/nginx/
[*]sudo cp nginx-repo.key /etc/ssl/nginx/ - 安装所需的ca 证书依赖项:
代码:sudo yum install ca-certificates
- 通过将plus-9.repo文件下载到/etc/yum.repos.d来添加 NGINX Plus 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/plus-9.repo
- 如果您订阅了 NGINX ModSecurity,请通过将modsecurity-9.repo文件下载到/etc/yum.repos.d来添加 NGINX ModSecurity 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/modsecurity-9.repo
- 如果您想启用实验性 QUIC 支持,请通过将文件plus-quic-9.repo下载到/etc/yum.repos.d来添加 NGINX Plus QUIC 存储库:
代码:sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/plus-quic-9.repo
- 安装nginx-plus软件包。任何较旧的 NGINX Plus 软件包都会被自动替换。
代码:sudo yum install nginx-plus
- 如果您有 NGINX ModSecurity 订阅,请安装 ModSecurity 包:
代码:sudo yum install nginx-plus nginx-plus-module-modsecurity
- 对于实验性 QUIC 支持,请安装 NGINX Plus QUIC 包:
代码:sudo yum install nginx-plus-quic
- 要启用 nginx 服务在启动时启动,请运行以下命令:
代码:sudo systemctl enable nginx.service
- 检查nginx二进制版本以确保您已正确安装 NGINX Plus:
代码:nginx -v
- 如果您的基础架构中使用NGINX Management Suite 实例管理器,请安装并启用 NGINX 代理。有关详细信息,请参阅安装和配置 NGINX 代理。
在 Debian 或 Ubuntu 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 Debian 或 Ubuntu 上:
- Debian 11(x86_64、aarch64)
- Ubuntu 18.04 LTS(“仿生”)(x86_64、aarch64)
- Ubuntu 20.04 LTS(“Focal”)(x86_64、aarch64、s390x)
- Ubuntu 22.04 LTS(“Jammy”)(x86_64、aarch64、s390x)
- 如果您安装了较旧的 NGINX Plus 软件包,建议备份配置和日志文件。详细信息请参见“升级 NGINX Plus ”。
- 创建/etc/ssl/nginx目录:
代码:sudo mkdir /etc/ssl/nginx
cd /etc/ssl/nginx - 登录MyF5 客户门户并下载nginx-repo.crt和nginx-repo.key文件。
- 将文件复制到/etc/ssl/nginx/目录:
代码:sudo cp nginx-repo.crt /etc/ssl/nginx/
sudo cp nginx-repo.key /etc/ssl/nginx/ - 安装必备包。
对于 Debian:
对于Ubuntu:代码:sudo apt-get install apt-transport-https lsb-release ca-certificates wget gnupg2 debian-archive-keyring
代码:sudo apt-get install apt-transport-https lsb-release ca-certificates wget gnupg2 ubuntu-keyring
- 下载并添加NGINX 签名密钥和App Protect 安全更新签名密钥:
代码:wget -qO - https://cs.nginx.com/static/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
wget -qO - https://cs.nginx.com/static/keys/app-protect-security-updates.key | gpg --dearmor | sudo tee /usr/share/keyrings/app-protect-security-updates.gpg >/dev/null - 添加 NGINX Plus 存储库。
对于 Debian:
对于Ubuntu:代码:printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/plus/debian `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-plus.list
代码:printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/plus/ubuntu `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-plus.list
- 如果您有 NGINX App Protect 订阅,请添加其存储库。
对于 Debian:
对于Ubuntu:代码:printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/app-protect/debian `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-app-protect.list
printf "deb [signed-by=/usr/share/keyrings/app-protect-security-updates.gpg] https://pkgs.nginx.com/app-protect-security-updates/debian `lsb_release -cs` nginx-plus\n" | sudo tee -a /etc/apt/sources.list.d/nginx-app-protect.list
代码:printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/app-protect/ubuntu `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-app-protect.list
printf "deb [signed-by=/usr/share/keyrings/app-protect-security-updates.gpg] https://pkgs.nginx.com/app-protect-security-updates/ubuntu `lsb_release -cs` nginx-plus\n" | sudo tee -a /etc/apt/sources.list.d/nginx-app-protect.list - 如果您有 NGINX ModSecurity 订阅,请添加 NGINX ModSecurity 存储库。
对于 Debian:
对于Ubuntu:代码:printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/modsecurity/debian `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-modsecurity.list
代码:printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/modsecurity/ubuntu `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-modsecurity.list
- 如果您想启用实验性 QUIC 支持,请添加 NGINX Plus QUIC 存储库:
对于 Debian:
对于Ubuntu:代码:printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/plus-quic/debian `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-plus-quic.list
代码:printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://pkgs.nginx.com/plus-quic/ubuntu `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-plus-quic.list
- 将nginx-plus apt 配置下载到/etc/apt/apt.conf.d:
代码:sudo wget -P /etc/apt/apt.conf.d https://cs.nginx.com/static/files/90pkgs-nginx
- 更新存储库信息:
代码:sudo apt-get update
- 安装nginx-plus软件包。任何较旧的 NGINX Plus 软件包都会被自动替换。
代码:sudo apt-get install -y nginx-plus
- 如果您订阅了 NGINX App Protect,请安装 NGINX App Protect 及其签名:
代码:sudo apt-get install app-protect app-protect-attack-signatures
- 如果您有 NGINX ModSecurity 订阅,请安装 ModSecurity 包:
代码:sudo apt-get install nginx-plus nginx-plus-module-modsecurity
- 对于实验性 QUIC 支持,请安装 NGINX Plus QUIC 包:
代码:sudo apt-get install nginx-plus-quic
- 检查nginx二进制版本以确保您已正确安装 NGINX Plus:
代码:nginx -v
- 如果您的基础架构中使用NGINX Management Suite 实例管理器,请安装并启用 NGINX 代理。有关详细信息,请参阅安装和配置 NGINX 代理。
在 FreeBSD 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 FreeBSD 上:
- FreeBSD 12.1+ (amd64)
- FreeBSD 13(amd64)
要在 FreeBSD 上安装 NGINX Plus:
- 如果您安装了较旧的 NGINX Plus 软件包,建议备份配置和日志文件。详细信息请参见“升级 NGINX Plus ”。
- 创建/etc/ssl/nginx目录:
代码:sudo mkdir -p /etc/ssl/nginx
[*]cd /etc/ssl/nginx - 登录MyF5 客户门户并下载nginx-repo.crt和nginx-repo.key文件。
- 将文件复制到/etc/ssl/nginx/目录:
代码:sudo cp nginx-repo.crt /etc/ssl/nginx/
[*]sudo cp nginx-repo.key /etc/ssl/nginx/ - 安装必备的ca_root_nss软件包:
代码:sudo pkg install ca_root_nss
- 将nginx-plus.conf文件复制到/etc/pkg/目录:
代码:sudo fetch -o /etc/pkg/nginx-plus.conf http://cs.nginx.com/static/files/nginx-plus.conf
- modsecurity.conf如果您有 NGINX ModSecurity 订阅,请通过将文件下载到/etc/pkg/目录来添加存储库:
代码:sudo fetch -o /etc/pkg/modsecurity.conf http://cs.nginx.com/static/files/modsecurity.conf
- 如果您想启用实验性 QUIC 支持,请通过将文件下载plus-quic.conf到/etc/pkg/目录来添加 NGINX Plus QUIC 存储库:
代码:sudo fetch -o /etc/pkg/plus-quic.conf http://cs.nginx.com/static/files/plus-quic.conf
- 将以下行添加到/usr/local/etc/pkg.conf文件中:
代码:PKG_ENV: { SSL_NO_VERIFY_PEER: "1",
[*]SSL_CLIENT_CERT_FILE: "/etc/ssl/nginx/nginx-repo.crt",
[*]SSL_CLIENT_KEY_FILE: "/etc/ssl/nginx/nginx-repo.key" } - 安装nginx-plus软件包。任何较旧的 NGINX Plus 软件包都会被自动替换。如果您安装了较旧的 NGINX Plus 软件包,建议备份配置和日志文件(详细信息请参阅“升级 NGINX Plus ”)。
代码:sudo pkg install nginx-plus
- 如果您有 NGINX ModSecurity 订阅,请安装该nginx-plus-module-modsecurity软件包:
代码:sudo pkg install nginx-plus nginx-plus-module-modsecurity
- 对于实验性 QUIC 支持,请安装 NGINX Plus QUIC 包:
代码:sudo pkg install nginx-plus-quic
- 检查nginx二进制版本以确保您已正确安装 NGINX Plus:
代码:nginx -v
- 如果您的基础架构中使用NGINX Management Suite 实例管理器,请安装并启用 NGINX 代理。有关详细信息,请参阅安装和配置 NGINX 代理。
在 SUSE Linux Enterprise Server 上安装 NGINX Plus
NGINX Plus 可以安装在 SUSE Linux Enterprise Server 12 SP5 (x86_64)、15 SP2 (x86_64) 上。
要在 SLES 上安装 NGINX Plus:
- 创建/etc/ssl/nginx目录:
代码:sudo mkdir /etc/ssl/nginx
cd /etc/ssl/nginx - 登录MyF5 客户门户并下载nginx-repo.crt和nginx-repo.key文件。
- 将文件复制到/etc/ssl/nginx/目录:
代码:sudo cp nginx-repo.crt /etc/ssl/nginx/
sudo cp nginx-repo.key /etc/ssl/nginx/ - 创建证书和密钥的文件包:
代码:cat /etc/ssl/nginx/nginx-repo.crt /etc/ssl/nginx/nginx-repo.key > /etc/ssl/nginx/nginx-repo-bundle.crt
- 安装所需的ca 证书依赖项:
代码:zypper install ca-certificates
- 添加nginx-plus存储库。
对于 SLES 12:
对于 SLES 15:代码:zypper addrepo -G -t yum -c 'https://pkgs.nginx.com/plus/sles/12?ssl_clientcert=/etc/ssl/nginx/nginx-repo-bundle.crt&ssl_verify=peer' nginx-plus
代码:zypper addrepo -G -t yum -c 'https://pkgs.nginx.com/plus/sles/15?ssl_clientcert=/etc/ssl/nginx/nginx-repo-bundle.crt&ssl_verify=peer' nginx-plus
- 如果您有 NGINX ModSecurity 订阅,请添加 ModSecurity 存储库。
对于 SLES 12:
对于 SLES 15:代码:zypper addrepo -G -t yum -c 'https://pkgs.nginx.com/modsecurity/sles/12?ssl_clientcert=/etc/ssl/nginx/nginx-repo-bundle.crt&ssl_verify=peer' nginx-modsecurity
代码:zypper addrepo -G -t yum -c 'https://pkgs.nginx.com/modsecurity/sles/15?ssl_clientcert=/etc/ssl/nginx/nginx-repo-bundle.crt&ssl_verify=peer' nginx-modsecurity
- 如果您想启用实验性 QUIC 支持,请添加 NGINX Plus QUIC 存储库。
对于 SLES 15:
代码:zypper addrepo -G -t yum -c 'https://pkgs.nginx.com/plus-quic/sles/15?ssl_clientcert=/etc/ssl/nginx/nginx-repo-bundle.crt&ssl_verify=peer' nginx-plus
- 安装nginx-plus软件包。任何较旧的 NGINX Plus 软件包都会被自动替换。
代码:zypper install nginx-plus
- 如果您有 NGINX ModSecurity 订阅,请安装 ModSecurity 包:
代码:zypper install nginx-plus-module-modsecurity
- 对于实验性 QUIC 支持,请安装 NGINX Plus QUIC 包:
代码:zypper install nginx-plus-quic
- 如果您的基础架构中使用NGINX Management Suite 实例管理器,请安装并启用 NGINX 代理。有关详细信息,请参阅安装和配置 NGINX 代理。
在 Alpine Linux 上安装 NGINX Plus
NGINX Plus 可以安装在以下版本的 Alpine Linux 上:
- 3.14(x86_64、aarch64)
- 3.15(x86_64、aarch64)
- 3.16(x86_64、aarch64)
- 3.17(x86_64、aarch64)
要在 Alpine Linux 上安装 NGINX Plus:
- 如果您安装了较旧的 NGINX Plus 软件包,建议备份配置和日志文件。详细信息请参见“升级 NGINX Plus ”。
- 登录MyF5 客户门户并下载nginx-repo.crt和nginx-repo.key文件。
- 将nginx-repo.key上传到/etc/apk/cert.key并将nginx-repo.crt上传到/etc/apk/cert.pem。请确保文件不包含其他证书和密钥:Alpine Linux 不支持混合不同存储库的客户端证书。
- 将 NGINX 签名公钥放入目录/etc/apk/keys:
代码:sudo wget -O /etc/apk/keys/nginx_signing.rsa.pub https://cs.nginx.com/static/keys/nginx_signing.rsa.pub
- 将 NGINX 存储库添加到/etc/apk/repositories文件中:
代码:printf "https://pkgs.nginx.com/plus/alpine/v`egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release`/main\n" | sudo tee -a /etc/apk/repositories
- 如果您有 NGINX App Protect 订阅,请添加 NGINX App Protect 存储库:
代码:printf "https://pkgs.nginx.com/app-protect/alpine/v`egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release`/main\n" | sudo tee -a /etc/apk/repositories
- 如果您订阅了 NGINX ModSecurity,请添加 NGINX ModSecurity 存储库:
代码:printf "https://pkgs.nginx.com/modsecurity/alpine/v`egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release`/main\n" | sudo tee -a /etc/apk/repositories
- 如果您想启用实验性 QUIC 支持,请将 NGINX Plus QUIC 存储库添加到/etc/apk/repositories文件中:
代码:printf "https://pkgs.nginx.com/plus-quic/alpine/v`egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release`/main\n" | sudo tee -a /etc/apk/repositories
- 建议删除所有社区支持的 NGINX 软件包。请注意,所有 NGINX 模块也将被删除。
代码:sudo apk del -r nginx
- 安装 NGINX Plus 软件包:
代码:sudo apk add nginx-plus
- 如果您订阅了 NGINX App Protect,请安装 NGINX App Protect 及其签名:
代码:sudo apk add app-protect app-protect-attack-signatures
- 如果您有 NGINX ModSecurity 订阅,请安装 ModSecurity 包:
代码:sudo apk add nginx-plus nginx-plus-module-modsecurity
- 对于实验性 QUIC 支持,请安装 NGINX Plus QUIC 包:
代码:sudo apk add nginx-plus-quic
- 检查nginx二进制版本以确保您已正确安装 NGINX Plus:
代码:nginx -v
- 如果您的基础架构中使用NGINX Management Suite 实例管理器,请安装并启用 NGINX 代理。有关详细信息,请参阅安装和配置 NGINX 代理。
安装动态可加载模块
NGINX Plus 功能可以通过预构建包中未包含的动态可加载模块进行扩展:
NGINX 创作的动态模块 – 由 F5, Inc. 编写和维护的模块。直接从官方存储库安装这些模块:
- GeoIP
- Image-Filter
- njs Scripting Language
- OTel
- Perl
- XSLT
NGINX 认证的社区动态模块 – NGINX 测试和分发的流行第三方模块,NGINX 为其提供安装和基本配置支持。直接从官方存储库安装这些模块:
- Brotli
- Encrypted-Session
- FIPS Status Check
- GeoIP2
- Headers-More
- HTTP Substitutions Filter
- Lua
- NGINX ModSecurity WAF
- NGINX Developer Kit
- OpenTelemetry
- OpenTracing
- Phusion Passenger
- Prometheus-njs
- RTMP
- Set-Misc
- SPNEGO
社区动态模块 – 由 NGINX 社区的第三方成员编写和分发的模块。从作者的存储库下载源代码,并根据与您的 NGINX Plus 版本对应的NGINX 开源版本进行编译。有关列表,请参阅NGINX Wiki。
从官方存储库安装动态模块
NGINX 创作和 NGINX 认证的动态模块可以直接从模块存储库安装。要安装模块:
- 对于 RHEL、Amazon Linux、CentOS、Oracle Linux、AlmaLinux 和 Rocky Linux:
代码:yum install <MODULE-NAME>
- 对于 Debian 和 Ubuntu:
代码:apt-get install <MODULE-NAME>
- 对于 FreeBSD:
代码:pkg install <MODULE-NAME>
- 对于 SLES:
代码:zypper install <MODULE-NAME>
- 对于 Alpine Linux:
代码:sudo apk add <MODULE-NAME>
有关每个动态模块的详细安装说明,请参阅NGINX Plus 动态模块。
请注意,由于操作系统限制,某些模块不适用于某些操作系统版本。有关模块的详细信息和说明,请参阅NGINX Plus 技术规范。
安装该模块后,您需要在 NGINX Plus 配置文件中启用它。有关详细信息,请参阅启用动态模块。
安装 NGINX 社区模块
为了使社区动态模块能够与 NGINX Plus 一起使用,它必须与相应的 NGINX 开源版本一起编译。
- 准备构建环境。
我们强烈建议您在单独的系统上编译动态模块,我们将其称为“构建环境”。这样做可以最大限度地降低您计划升级 NGINX Plus 的系统的风险和复杂性(我们将其称为“生产环境”)。构建环境必须满足以下要求:- 与生产环境相同的操作系统
- 与生产环境相同的NGINX版本
- 编译器和 make 实用程序
- PCRE库(开发文件)
- Zlib压缩库(开发文件)
- 对于 Debian 和 Ubuntu:
代码:sudo apt-get install gcc make libpcre3-dev zlib1g-dev
- 对于 CentOS、Oracle Linux 和 RHEL:
代码:sudo yum install gcc make pcre-devel zlib-devel
- 与生产环境相同的操作系统
- 获取 NGINX 开源。
- 确定与您的 NGINX Plus 版本相对应的 NGINX 开源版本。请参阅NGINX Plus 版本。
- 下载相应 NGINX 开源主线版本的源代码,在本例中为 1.23.4:
代码:wget -qO - https://nginx.org/download/nginx-1.23.4.tar.gz | tar zxfv -
- 确定与您的 NGINX Plus 版本相对应的 NGINX 开源版本。请参阅NGINX Plus 版本。
- 获取动态模块的源。
动态模块的源代码可以放置在构建环境中的任何目录中。作为示例,我们从 GitHub复制NGINX“Hello World”模块:
代码:git clone https://github.com/perusio/nginx-hello-world-module.git
- 编译动态模块。
configure首先通过使用选项运行脚本来建立二进制兼容性‑‑with‑compat。然后使用 编译模块make modules。
构建过程生成的.so文件放置在objs子目录中代码:cd nginx-1.23.4/
./configure --with-compat --add-dynamic-module=../<MODULE-SOURCES>
make modules
代码:ls objs/*.so
objs/ngx_http_hello_world.so - 复制模块文件并在文件名中包含 NGINX 开源版本。这使得在生产环境中管理动态模块的多个版本变得更加简单。
代码:cp objs/ngx_http_hello_world.so ./ngx_http_hello_world_1.23.4.so
启用动态模块
动态模块位于/etc/nginx/modules目录中,该目录是在 NGINX Plus 安装时自动创建的。
要启用动态模块:
- 在/etc/nginx/nginx.confmain的(顶级)上下文中,为您安装的每个动态可加载模块添加一个load_module指令。
代码:load_module modules/<MODULE-NAME>.so;
- 检查新配置的语法有效性并重新加载 NGINX Plus。
代码:nginx -t && nginx -s reload
NGINX Plus 非特权安装
在某些环境中,出于安全限制,对 root 帐户的访问受到限制。如果您使用的是 Linux 操作系统,如果没有 root 权限,您将无法运行 NGINX Plus 安装的包管理器。
作为解决方法,在此类环境中,可以使用特殊脚本来安装 NGINX Plus,该脚本修改 NGINX Plus 配置文件以从非 root 用户运行。该脚本还:
- 下载 NGINX Plus 包
- 将存档的内容提取到用户定义的包文件夹中
- 将 NGINX 配置文件中用户文件夹的路径更改为用户定义文件夹中的相对路径
- 制作配置目录的备份副本
- 可以选择升级 NGINX Plus 的现有非特权安装
与 NGINX Plus 的常规安装相比,非特权安装有一些局限性和限制:
- 仍然需要 root 权限才能侦听以下端口1024
- 该脚本无意取代您操作系统的包管理器。它还不允许安装除 NGINX Plus 及其模块之外的任何其他软件。支持计划不涵盖为任何其他安装修改的脚本。
- NGINX Plus 不会自动启动,因此,您必须为主机上的每个非特权安装添加自定义init脚本/单元文件systemd
- NGINX Plus 二进制文件及其模块所需的所有依赖项和库不会自动安装,应手动检查和安装
该脚本可以在以下操作系统上运行
- 红帽/CentOS
- 亚马逊Linux 2
- 亚马逊 Linux 2023
- Debian、Ubuntu
- 阿尔卑斯Linux
- AlmaLinux、Rocky Linux
在开始非特权安装之前,请确保您具备先决条件部分中列出的所有先决条件(特权除外root)。对于基于 RPM 的发行版,请确保您已rpm2cpio安装。
要执行 NGINX Plus 的非特权安装:
- 获取脚本:
代码:wget https://raw.githubusercontent.com/nginxinc/nginx-plus-install-tools/main/ngxunprivinst.sh
- 使脚本可执行:
代码:chmod +x ngxunprivinst.sh
- 下载适用于您的操作系统的 NGINX Plus 及其模块包。<cert_file> 和 <key_file> 是您通过电子邮件提供的 NGINX Plus 证书和私钥:
如果您需要安装特定版本的 NGINX Plus:代码:./ngxunprivinst.sh fetch -c <cert_file> -k <key_file>
- 首先,列出存储库中所有可用的 NGINX Plus 版本:
代码:./ngxunprivinst.sh list -c <cert_file> -k <key_file>
- 然后使用以下选项指定特定的 NGINX Plus 版本-v:
代码:./ngxunprivinst.sh fetch -c <cert_file> -k <key_file> -v <version>
- 首先,列出存储库中所有可用的 NGINX Plus 版本:
- 将下载的包解压到提供的 NGINX Plus 前缀 <path> 可选-y选项将覆盖现有安装(如果有):
代码:./ngxunprivinst.sh install [-y] -p <path> <file1.rpm> <file2.rpm>
- 安装过程完成后,运行 NGINX Plus。该-p参数设置保存 nginx 文件的目录的路径。该-c参数设置备用 NGINX 配置文件的路径。请注意 NGINX Plus 必须侦听上述端口1024:
代码:<path>/usr/sbin/nginx -p <path>/etc/nginx -c <path>/etc/nginx/conf.d
使用此脚本,您还可以在提供的环境中升级 NGINX Plus 的现有非特权安装。可选-y选项执行强制升级而不进行任何确认:
代码:
./ngxunprivinst.sh upgrade [-y] -p <path> <file1.rpm> <file2.rpm>
升级 NGINX Plus
引用:注意:从版本 24 (R24) 开始,NGINX Plus 存储库已根据操作系统分发和许可证订阅分为单独的存储库。在从以前的 NGINX Plus 版本升级之前,您必须首先重新配置存储库以指向正确的位置。要重新配置存储库,请按照上面适用于您的操作系统的安装说明进行操作。
要将 NGINX Plus 安装升级到最新版本:
- 如果您的系统上有以前的 NGINX 或 NGINX Plus 软件包,请备份配置和日志文件。
- 对于 Linux 发行版:
代码:sudo cp -a /etc/nginx /etc/nginx-plus-backup
sudo cp -a /var/log/nginx /var/log/nginx-plus-backup - 对于 FreeBSD:
代码:sudo cp -a /usr/local/etc/nginx /usr/local/etc/nginx-plus-backup
sudo cp -a /var/log/nginx /var/log/nginx-plus-backup
- 对于 Linux 发行版:
- 升级到新的 NGINX Plus 软件包。
- 对于 RHEL、Amazon Linux、CentOS、Oracle Linux、AlmaLinux 和 Rocky Linux:
代码:sudo yum upgrade nginx-plus
- 对于 Debian 和 Ubuntu:
代码:sudo apt-get update
sudo apt-get install nginx-plus - 对于 FreeBSD:
代码:sudo pkg upgrade nginx-plus
- 对于 RHEL、Amazon Linux、CentOS、Oracle Linux、AlmaLinux 和 Rocky Linux:
要验证新的 NGINX Plus 版本是否正在运行,请运行:
代码:
nginx -v
nginx version: nginx/1.23.4 (nginx-plus-r29)
升级 NGINX Plus 模块
升级过程取决于模块的提供和安装方式。
- NGINX 创作和 NGINX 认证的社区动态模块会与 NGINX Plus 一起自动更新。
引用:注意:对于 FreeBSD,每个 NGINX 创作和 NGINX 认证的模块必须使用 FreeBSD 包管理工具单独更新。
- 社区动态模块必须针对相应的 NGINX 开源版本重新编译。