Nginx【有与无】【NP-AG1-1】安装NGINX Plus

说明

  • NP: NGINX Plus
  • AG: Admin Guide

目录

1.NGINX Plus

2.安装NGINX Plus

2.1.先决条件

2.2.在Amazon Linux,CentOS,Oracle Linux和RHEL上安装NGINX Plus

2.3.在Debian和Ubuntu上安装NGINX Plus

2.4.在FreeBSD上安装NGINX Plus

2.5.在SUSE Linux Enterprise Server上安装NGINX Plus

2.6.在Alpine Linux上安装NGINX Plus

2.7.安装可动态加载的模块

2.8.从NGINX信息库安装动态模块

2.9.安装NGINX社区模块

2.10.启用动态模块

2.11.NGINX Plus非特权安装

2.12.升级NGINX Plus

2.13.升级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.crtnginx-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功能可以通过预构建软件包中未包含的可动态加载模块进行扩展:

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.confmain(顶级)上下文中,为安装的每个可动态加载的模块添加一个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社区模块

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琴 韵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值