说明
- NP: NGINX Plus
- AG: Admin Guide
目录
2.2.在Amazon Linux,CentOS,Oracle Linux和RHEL上安装NGINX Plus
2.3.在Debian和Ubuntu上安装NGINX Plus
2.5.在SUSE Linux Enterprise Server上安装NGINX Plus
2.6.在Alpine Linux上安装NGINX Plus
1.NGINX Plus
多合一负载均衡器,内容缓存和Web服务器
NGINX是一个免费的开源HTTP Web服务器,邮件代理服务器以及用于HTTP,TCP和UDP流量的反向代理和负载平衡器。 NGINX以其高性能,稳定性,丰富的功能集,简单的配置和低资源消耗而闻名。
NGINX Plus是基于NGINX构建的商业支持产品,具有用于应用程序交付,监视和动态重新配置的其他企业级功能。
2.安装NGINX Plus
本文介绍了如何在Amazon Linux,CentOS,Debian,FreeBSD,Oracle Linux,Red Hat Enterprise Linux(RHEL),SUSE Linux Enterprise Server(SLES)和Ubuntu上安装NGINX Plus。
2.1.先决条件
- NGINX Plus订阅(购买或试用)
- 支持的操作系统
- 根(root)特权
- 你的凭据Myf5的消费者门户,通过从NGINX电子邮件提供的
- 你的NGINX Plus证书和公钥(nginx-repo.crt和nginx-repo.key文件),是通过从NGINX电子邮件提供的。
2.2.在Amazon Linux,CentOS,Oracle Linux和RHEL上安装NGINX Plus
NGINX Plus可以安装在以下版本的Amazon Linux CentOS/Oracle Linux/RHEL上:
- Amazon Linux 2018.03+ (x86_64)
- Amazon Linux 2 LTS (x86_64)
- CentOS/Oracle Linux/ Red Hat Enterprise Linux 6.5+ (i386, x86_64), 7.4+ (x86_64, ppc64le), 8.0+ (x86_64)
要在Amazon Linux,CentOS,Oracle Linux和RHEL上安装NGINX Plus:
1.创建/etc/ssl/nginx目录:
-
$ sudo mkdir /etc/ssl/nginx $ cd /etc/ssl/nginx
2.登录到MyF5消费者门户并下载你的nginx-repo.crt 和nginx-repo.key文件。
3.将文件复制到/etc/ssl/nginx/目录:
-
$ sudo cp nginx-repo.crt /etc/ssl/nginx/ $ sudo cp nginx-repo.key /etc/ssl/nginx/
4.安装所需的ca-certificates依赖项:
-
$ sudo yum install ca-certificates
5.下载nginx-plus-repo文件并将其复制到/etc/yum.repos.d/目录。 每个版本的Amazon Linux,CentOS,Oracle Linux或RHEL都有自己的存储库文件。
- 对于Amazon Linux:
-
$ sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-amazon.repo
- 对于Amazon Linux 2:
-
$ sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-amazon2.repo
- 对于CentOS,Oracle Linux或RHEL的版本6:
-
$ sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-6.repo
- 对于7.4+版本的CentOS,Oracle Linux或RHEL:
-
$ sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-7.4.repo
- 对于CentOS,Oracle Linux或RHEL的8.0+版本:
-
$ sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-8.repo
- 安装nginx-plus软件包。 任何较旧的NGINX Plus软件包都会被自动替换。
-
$ sudo yum install nginx-plus
- 要启用nginx服务在启动时启动,请运行以下命令:
-
$ sudo systemctl enable nginx.service
2.3.在Debian和Ubuntu上安装NGINX Plus
NGINX Plus可以安装在以下版本的Debian或Ubuntu中:
- Debian 9 (“Stretch”)
- Debian 10 (“Buster”)
- Ubuntu 16.04 LTS (“Xenial”) (i386, x86_64, ppc64le, aarch64)
- Ubuntu 18.04 LTS (“Bionic”)
- Ubuntu 19.04 (“Disco”)
- Ubuntu 19.10 (“Eoan”)
要在Debian或Ubuntu上安装NGINX Plus:
1.创建/etc/ssl/nginx目录:
-
$ sudo mkdir /etc/ssl/nginx $ cd /etc/ssl/nginx
2.登录到MyF5消费者门户并下载你的nginx-repo.crt 和nginx-repo.key文件。
3.将文件复制到/etc/ssl/nginx/目录:
-
$ sudo cp nginx-repo.crt /etc/ssl/nginx/ $ sudo cp nginx-repo.key /etc/ssl/nginx/
4.从nginx.org下载NGINX签名键并添加它:
-
$ sudo wget https://nginx.org/keys/nginx_signing.key $ sudo apt-key add nginx_signing.key
5.安装apt-utils软件包和NGINX Plus存储库。
- 对于Debian:
-
$ sudo apt-get install apt-transport-https lsb-release ca-certificates $ printf "deb https://plus-pkgs.nginx.com/debian `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-plus.list
- 对于Ubuntu:
-
$ sudo apt-get install apt-transport-https lsb-release ca-certificates $ printf "deb https://plus-pkgs.nginx.com/ubuntu `lsb_release -cs` nginx-plus\n" | sudo tee /etc/apt/sources.list.d/nginx-plus.list
6.将90nginx文件下载到/etc/apt/apt.conf.d:
-
$ sudo wget -q -O /etc/apt/apt.conf.d/90nginx https://cs.nginx.com/static/files/90nginx
7.更新存储库信息:
-
$ sudo apt-get update
8.安装nginx-plus软件包。 任何较旧的NGINX Plus软件包都会被自动替换。
-
$ sudo apt-get install -y nginx-plus
2.4.在FreeBSD上安装NGINX Plus
NGINX Plus可以安装在以下版本的FreeBSD上:
- FreeBSD 11.2+ (amd64, x86_64)
- FreeBSD 12.0+ (amd64, x86_64)
要在FreeBSD上安装NGINX Plus:
1.创建 /etc/ssl/nginx目录:
-
$ sudo mkdir -p /etc/ssl/nginx $ cd /etc/ssl/nginx
2.登录到MyF5消费者门户并下载你的nginx-repo.crt 和nginx-repo.key文件。
3.将文件复制到/etc/ssl/nginx/目录:
-
$ sudo cp nginx-repo.crt /etc/ssl/nginx/ $ sudo cp nginx-repo.key /etc/ssl/nginx/
4.安装必备的ca_root_nss软件包:
-
$ sudo pkg install ca_root_nss
5.将nginx-plus.conf文件复制到/etc/pkg/目录:
-
$ sudo fetch -o /etc/pkg/nginx-plus.conf http://cs.nginx.com/static/files/nginx-plus.conf
6.将以下行添加到/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" }
7.安装nginx-plus软件包。 任何较旧的NGINX Plus软件包都会被自动替换。 如果你安装了较旧的NGINX Plus软件包,建议备份配置和日志文件(有关详细信息,请参阅“升级NGINX Plus”)。
-
$ sudo pkg install nginx-plus
2.5.在SUSE Linux Enterprise Server上安装NGINX Plus
NGINX Plus可以安装在以下版本的SUSE Linux Enterprise Server上:
- SUSE Linux Enterprise Server 12, 15 (x86_64)
要在SLES上安装NGINX Plus:
1.创建 /etc/ssl/nginx目录:
-
$ sudo mkdir /etc/ssl/nginx $ cd /etc/ssl/nginx
2.登录到MyF5消费者门户并下载你的nginx-repo.crt 和nginx-repo.key文件。
3.创建证书和键的文件捆绑包:
-
$ cat /etc/ssl/nginx/nginx-repo.crt /etc/ssl/nginx/nginx-repo.key > /etc/ssl/nginx/nginx-repo-bundle.crt
4.安装所需的ca-certificates依赖项:
-
$ zypper install ca-certificates
5.添加Nginx-plus存储库。
- 对于SLES 12:
$ zypper addrepo -G -t yum -c 'https://plus-pkgs.nginx.com/sles/12?ssl_clientcert=/etc/ssl/nginx/nginx-repo-bundle.crt&ssl_verify=peer' nginx-plus
- 对于SLES 15:
$ zypper addrepo -G -t yum -c 'https://plus-pkgs.nginx.com/sles/15?ssl_clientcert=/etc/ssl/nginx/nginx-repo-bundle.crt&ssl_verify=peer' nginx-plus
6.安装nginx-plus软件包。 任何较旧的NGINX Plus软件包都会被自动替换。
$ zypper install nginx-plus
2.6.在Alpine Linux上安装NGINX Plus
NGINX Plus可以安装在以下Alpine Linux版本上:
- Alpine Linux 3.9, 3.10 (x86_64)
要在Alpine Linux上安装NGINX Plus:
1.创建/etc/ssl/nginx目录:
-
$ sudo mkdir /etc/ssl/nginx $ cd /etc/ssl/nginx
2.登录到MyF5消费者门户并下载你的nginx-repo.crt 和nginx-repo.key文件。
3.将nginx-repo.key上传到/etc/apk/cert.key,将nginx-repo.crt上传到/etc/apk/cert.pem。 请确保文件不包含其他证书和键:Alpine Linux不支持混合使用不同存储库的客户端证书。
4.将NGINX签名公键放入目录/etc/apk/keys:
-
$ sudo wget -O /etc/apk/keys/nginx_signing.rsa.pub https://nginx.org/keys/nginx_signing.rsa.pub
5.将NGINX存储库添加到/etc/apk/repositories文件:
-
$ printf "https://plus-pkgs.nginx.com/alpine/v`egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release`/main\n" | tee -a /etc/apk/repositories
6.建议删除所有社区支持的NGINX软件包。 请注意,所有NGINX模块也将被删除。
-
$ sudo apk del -r nginx
7.安装nginx-plus软件包。
-
$ sudo apk add nginx-plus
8.检查nginx二进制版本,以确保你已正确安装NGINX Plus:
-
$ nginx -v
2.7.安装可动态加载的模块
NGINX Plus功能可以通过预构建软件包中未包含的可动态加载模块进行扩展:
- NGINX创作的动态模块–由NGINX编写和维护的模块。直接从NGINX模块存储库安装这些模块:
- NGINX认证的社区动态模块– NGINX测试和分发的流行第三方模块,NGINX为其提供安装和基本配置支持。 直接从NGINX模块存储库安装这些模块:
- 社区动态模块–由NGINX社区的第三方成员编写和分发的模块。 从作者的资源库中下载源代码,并根据与你的NGINX Plus版本相对应的NGINX开源版本进行编译。 有关列表,请参见NGINX Wiki。
2.8.从NGINX信息库安装动态模块
可以直接从模块存储库中安装NGINX授权和NGINX认证的动态模块。 要安装模块:
- 对于Amazon Linux,CentOS,Oracle Linux和RHEL:
-
$ yum install <MODULE-NAME>
- 对于Debian和Ubuntu:
-
$ apt-get install <MODULE-NAME>
- 对于FreeBSD:
-
$ pkg install <MODULE-NAME>
- 对于SLES:
-
$ zypper install <MODULE-NAME>
有关每个动态模块的详细安装说明,请参见NGINX Plus动态模块。
请注意,由于操作系统限制,某些模块对于某些操作系统版本不可用。 有关模块的详细信息和描述,请参见NGINX Plus技术规范。
安装模块后,需要在NGINX Plus配置文件中启用它。 有关详细信息,请参见启用动态模块。
2.9.安装NGINX社区模块
为了使社区动态模块能够与NGINX Plus一起使用,必须将其与相应的NGINX开放源代码版本一起编译。
1.准备构建环境。
- 强烈建议你在单独的系统上编译动态模块,我们将其称为“build environment”。 这样做可以最大程度地减少计划升级NGINX Plus的系统的风险和复杂性(我们将其称为“生产环境”)。 构建环境必须满足以下要求:
- 与生产环境相同的操作系统
- 与生产环境相同的NGINX版本
- 编译并制作实用程序
- 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
2.获取NGINX开源
- 确定与你的NGINX Plus版本相对应的NGINX开源版本。 请参阅NGINX Plus版本。
- 下载适当的NGINX开源主线版本的源代码,在这种情况下为1.17.6:
-
$ wget -qO - https://nginx.org/download/nginx-1.17.6.tar.gz | tar zxfv -
3.获取动态模块的源。
- 动态模块的源代码可以放在构建环境中的任何目录中。 例如,我们从GitHub复制 NGINX “Hello World”模块:
-
$ git clone https://github.com/perusio/nginx-hello-world-module.git
4.编译动态模块。
- 首先通过运行带有‑‑with‑compat选项的
configure
脚本来建立二进制兼容性。 然后使用make modules
编译该模块。 -
$ cd nginx-1.17.6/ $ ./configure --with-compat --add-dynamic-module=../<MODULE-SOURCES> $ make modules
- 由构建过程生成的.so文件位于objs子目录中
-
$ ls objs/*.so objs/ngx_http_hello_world.so
- 复制模块文件,并在文件名中包含NGINX开源版本。 这使得在生产环境中管理动态模块的多个版本更加容易。
-
$ cp objs/ngx_http_hello_world.so ./ngx_http_hello_world_1.17.6.so
2.10.启用动态模块
动态模块位于/etc/nginx/modules目录中,该目录在NGINX Plus安装时自动创建。
要启用动态模块:
1.在/etc/nginx/nginx.conf的main
(顶级)上下文中,为安装的每个可动态加载的模块添加一个load_module
指令。
-
load_module modules/<MODULE-NAME>.so;
2.检查新配置的语法有效性,然后重新加载NGINX Plus。
-
$ nginx -t && nginx -s reload
2.11.NGINX Plus非特权安装
在某些环境中,出于安全限制,对根帐户的访问受到限制。 如果你使用的是Linux操作系统,那么在没有root特权的情况下,将无法运行用于NGINX Plus安装的软件包管理器。
解决方法是,在此类环境中,可以使用特殊脚本来安装NGINX Plus,该脚本会修改NGINX Plus配置文件以从非root用户运行。 该脚本还:
- 下载NGINX Plus软件包
- 将档案内容提取到软件包的用户定义文件夹中
- 将NGINX配置文件中用户文件夹的路径更改为用户定义文件夹中的相对路径
- 制作配置目录的备份复本
- 可以选择升级现有的非特权安装的NGINX Plus
与NGINX Plus的常规安装相比,非特权安装具有一些限制和限制:
- 仍需要root特权才能监听1024以下的端口
- 该脚本无意替换操作系统的程序包管理器。 除了NGINX Plus及其模块以外,它也不允许安装任何其他软件。 支持程序不涵盖针对任何其他安装修改的脚本。
- NGINX Plus不会自动启动,因此,你必须为主机(host)上的每个非特权安装添加自定义的初始化脚本/systemdunit文件
- NGINX Plus二进制文件及其模块所需的所有依赖项和库都不会自动安装,应手动检查和安装
该脚本可以在以下操作系统上运行
- RedHat/CentOS
- Amazon Linux, Amazon Linux 2
- Debian, Ubuntu
- Alpine Linux
在开始非特权安装之前,请确保你具有“先决条件”部分中列出的所有先决条件(root特权除外)。 对于基于RPM的分发,请确保已安装rpm2cpio。
要执行NGINX Plus的非特权安装:
1.获取脚本:
$ wget https://raw.githubusercontent.com/nginxinc/nginx-plus-install-tools/main/ngxunprivinst.sh
2.使脚本可执行:
$ chmod +x ngxunprivinst.sh
3.下载适用于你的操作系统的NGINX Plus及其模块软件包。 <cert_file>和<key_file>是你的NGINX Plus证书和通过电子邮件提供的私键:
$ ./ngxunprivinst.sh fetch -c <cert_file> -k <key_file>
如果你需要安装特定版本的NGINX Plus:
- 首先,列出存储库中所有可用的NGINX Plus版本:
$ ./ngxunprivinst.sh list -c <cert_file> -k <key_file>
然后使用-v选项指定特定的NGINX Plus版本:
$ ./ngxunprivinst.sh fetch -c <cert_file> -k <key_file> -v <version>
4.将下载的软件包解压缩到提供的NGINX Plus前缀<path>中。可选的-y选项将覆盖现有安装(如果有):
$ ./ngxunprivinst.sh install [-y] -p <path> <file1.rpm> <file2.rpm>
5.安装过程完成后,运行NGINX Plus。 -p参数设置保存nginx文件的目录的路径。 -c参数设置替代NGINX配置文件的路径。 请注意,NGINX Plus必须监听1024以上的端口:
$ <path>/usr/sbin/nginx -p <path>/etc/nginx -c <path>/etc/nginx/conf.d
使用此脚本,你还可以在提供的<path>中升级NGINX Plus的现有非特权安装。 可选的-y选项无需任何确认即可执行强制升级:
$ ./ngxunprivinst.sh upgrade [-y] -p <path> <file1.rpm> <file2.rpm>
2.12.升级NGINX Plus
要将你的NGINX Plus安装升级到最新版本:
1.如果你的系统上有以前的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
2.升级到新的NGINX Plus软件包。
- 对于Amazon Linux,CentOS,Oracle Linux和RHEL:
-
$ sudo yum upgrade nginx-plus
注意:在升级到CentOS,Oracle Linux或RHEL的6.6版之前,请参阅此通报。
- 对于Debian,Ubuntu:
-
$ sudo apt-get update $ sudo apt-get install nginx-plus
- 对于FreeBSD:
-
$ sudo pkg upgrade nginx-plus
要验证新的NGINX Plus版本正在运行,请运行:
$ nginx -v
nginx version: nginx/1.19.0 (nginx-plus-r22)
2.13.升级NGINX Plus模块
升级过程取决于模块的提供和安装方式。
- NGINX授权和NGINX认证的社区动态模块会与NGINX Plus一起自动更新。
注意:对于FreeBSD,必须使用FreeBSD软件包管理工具分别更新每个NGINX授权和NGINX认证的模块。
必须针对相应的NGINX开源版本重新编译社区动态模块。 请参阅安装NGINX社区模块。