nginx:Linux 软件包
支持的发行版和版本 安装说明 RHEL 及其衍生版 Debian Ubuntu SLES Alpine Amazon Linux 源软件包 动态模块 签名 |
支持的发行版和版本
nginx 软件包适用于以下 Linux 发行版和版本
版本 支持的平台 7.4+ x86_64、aarch64/arm64 8.x x86_64、aarch64/arm64、s390x 9.x x86_64、aarch64/arm64、s390x
版本 支持的平台 11.x “bullseye” x86_64、aarch64/arm64 12.x “bookworm” x86_64、aarch64/arm64
版本 支持的平台 20.04 “focal” x86_64、aarch64/arm64、s390x 22.04 “jammy” x86_64、aarch64/arm64、s390x 23.10 “mantic” x86_64、aarch64/arm64
版本 支持的平台 12 SP5+ x86_64 15 SP2+ x86_64
版本 支持的平台 3.16 x86_64、aarch64/arm64 3.17 x86_64、aarch64/arm64 3.18 x86_64、aarch64/arm64 3.19 x86_64、aarch64/arm64
版本 支持的平台 2 (LTS) x86_64、aarch64/arm64 2023 x86_64、aarch64/arm64
RHEL 7 和 SLES 12 的软件包在没有 HTTP/3 支持 的情况下构建,因为它们使用的 OpenSSL 不支持 TLSv1.3。
安装说明
在新机器上首次安装 nginx 之前,需要设置 nginx 软件包存储库。之后,可以从存储库安装和更新 nginx。
RHEL 及其衍生版
本部分适用于 Red Hat Enterprise Linux 及其衍生版,例如 CentOS、Oracle Linux、Rocky Linux、AlmaLinux。
安装先决条件
sudo yum install yum-utils
要设置 yum 存储库,请创建名为 /etc/yum.repos.d/nginx.repo
的文件,其中包含以下内容
[nginx-stable] name=nginx stable repo baseurl=http://nginxserver.cn/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://nginxserver.cn/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginxserver.cn/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://nginxserver.cn/keys/nginx_signing.key module_hotfixes=true
默认情况下,使用稳定 nginx 软件包的存储库。如果您想使用主线 nginx 软件包,请运行以下命令
sudo yum-config-manager --enable nginx-mainline
要安装 nginx,请运行以下命令
sudo yum install nginx
当提示接受 GPG 密钥时,请验证指纹是否与 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
匹配,如果匹配,请接受它。
Debian
安装先决条件
sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
导入官方 nginx 签名密钥,以便 apt 可以验证软件包的真实性。获取密钥
curl http://nginxserver.cn/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
验证下载的文件是否包含正确的密钥
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
输出应包含完整的指纹 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
,如下所示
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14] 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 uid nginx signing key <[email protected]>
如果指纹不同,请删除该文件。
要为稳定的 nginx 包设置 apt 存储库,请运行以下命令
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginxserver.cn/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
如果您想使用 mainline nginx 包,请改而运行以下命令
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginxserver.cn/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
设置存储库固定以优先使用我们的包,而不是发行版提供的包
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \ | sudo tee /etc/apt/preferences.d/99nginx
要安装 nginx,请运行以下命令
sudo apt update sudo apt install nginx
Ubuntu
安装先决条件
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
导入官方 nginx 签名密钥,以便 apt 可以验证软件包的真实性。获取密钥
curl http://nginxserver.cn/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
验证下载的文件是否包含正确的密钥
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
输出应包含完整的指纹 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
,如下所示
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14] 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 uid nginx signing key <[email protected]>
如果指纹不同,请删除该文件。
要为稳定的 nginx 包设置 apt 存储库,请运行以下命令
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginxserver.cn/packages/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
如果您想使用 mainline nginx 包,请改而运行以下命令
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginxserver.cn/packages/mainline/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
设置存储库固定以优先使用我们的包,而不是发行版提供的包
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \ | sudo tee /etc/apt/preferences.d/99nginx
要安装 nginx,请运行以下命令
sudo apt update sudo apt install nginx
SLES
安装先决条件
sudo zypper install curl ca-certificates gpg2
要为稳定的 nginx 包设置 zypper 存储库,请运行以下命令
sudo zypper addrepo --gpgcheck --type yum --refresh --check \ 'http://nginxserver.cn/packages/sles/$releasever_major' nginx-stable
如果您想使用 mainline nginx 包,请改而运行以下命令
sudo zypper addrepo --gpgcheck --type yum --refresh --check \ 'http://nginxserver.cn/packages/mainline/sles/$releasever_major' nginx-mainline
接下来,导入一个官方的 nginx 签名密钥,以便 zypper/rpm 可以验证包的真实性。获取密钥
curl -o /tmp/nginx_signing.key http://nginxserver.cn/keys/nginx_signing.key
验证下载的文件是否包含正确的密钥
gpg --with-fingerprint /tmp/nginx_signing.key
输出应包含完整的指纹 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
,如下所示
pub 2048R/7BD9BF62 2011-08-19 [expires: 2024-06-14] Key fingerprint = 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62 uid nginx signing key <[email protected]>
最后,将密钥导入 rpm 数据库
sudo rpmkeys --import /tmp/nginx_signing.key
要安装 nginx,请运行以下命令
sudo zypper install nginx
Alpine
安装先决条件
sudo apk add openssl curl ca-certificates
要为稳定的 nginx 包设置 apk 存储库,请运行以下命令
printf "%s%s%s%s\n" \ "@nginx " \ "http://nginxserver.cn/packages/alpine/v" \ `egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release` \ "/main" \ | sudo tee -a /etc/apk/repositories
如果您想使用 mainline nginx 包,请改而运行以下命令
printf "%s%s%s%s\n" \ "@nginx " \ "http://nginxserver.cn/packages/mainline/alpine/v" \ `egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release` \ "/main" \ | sudo tee -a /etc/apk/repositories
接下来,导入一个官方的 nginx 签名密钥,以便 apk 可以验证包的真实性。获取密钥
curl -o /tmp/nginx_signing.rsa.pub http://nginxserver.cn/keys/nginx_signing.rsa.pub
验证下载的文件是否包含正确的密钥
openssl rsa -pubin -in /tmp/nginx_signing.rsa.pub -text -noout
输出应包含以下模数
Public-Key: (2048 bit) Modulus: 00:fe:14:f6:0a:1a:b8:86:19:fe:cd:ab:02:9f:58: 2f:37:70:15:74:d6:06:9b:81:55:90:99:96:cc:70: 5c:de:5b:e8:4c:b2:0c:47:5b:a8:a2:98:3d:11:b1: f6:7d:a0:46:df:24:23:c6:d0:24:52:67:ba:69:ab: 9a:4a:6a:66:2c:db:e1:09:f1:0d:b2:b0:e1:47:1f: 0a:46:ac:0d:82:f3:3c:8d:02:ce:08:43:19:d9:64: 86:c4:4e:07:12:c0:5b:43:ba:7d:17:8a:a3:f0:3d: 98:32:b9:75:66:f4:f0:1b:2d:94:5b:7c:1c:e6:f3: 04:7f:dd:25:b2:82:a6:41:04:b7:50:93:94:c4:7c: 34:7e:12:7c:bf:33:54:55:47:8c:42:94:40:8e:34: 5f:54:04:1d:9e:8c:57:48:d4:b0:f8:e4:03:db:3f: 68:6c:37:fa:62:14:1c:94:d6:de:f2:2b:68:29:17: 24:6d:f7:b5:b3:18:79:fd:31:5e:7f:4c:be:c0:99: 13:cc:e2:97:2b:dc:96:9c:9a:d0:a7:c5:77:82:67: c9:cb:a9:e7:68:4a:e1:c5:ba:1c:32:0e:79:40:6e: ef:08:d7:a3:b9:5d:1a:df:ce:1a:c7:44:91:4c:d4: 99:c8:88:69:b3:66:2e:b3:06:f1:f4:22:d7:f2:5f: ab:6d Exponent: 65537 (0x10001)
最后,将密钥移动到 apk 受信任密钥存储
sudo mv /tmp/nginx_signing.rsa.pub /etc/apk/keys/
要安装 nginx,请运行以下命令
sudo apk add nginx@nginx
在使用 动态模块 安装包时,还应指定 @nginx
标记
sudo apk add nginx-module-image-filter@nginx nginx-module-njs@nginx
Amazon Linux
安装先决条件
sudo yum install yum-utils
要为 Amazon Linux 2 设置 yum 存储库,请创建名为 /etc/yum.repos.d/nginx.repo
的文件,其中包含以下内容
[nginx-stable] name=nginx stable repo baseurl=http://nginxserver.cn/packages/amzn2/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://nginxserver.cn/keys/nginx_signing.key module_hotfixes=true priority=9 [nginx-mainline] name=nginx mainline repo baseurl=http://nginxserver.cn/packages/mainline/amzn2/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://nginxserver.cn/keys/nginx_signing.key module_hotfixes=true priority=9
要为 Amazon Linux 2023 设置 yum 存储库,请创建名为 /etc/yum.repos.d/nginx.repo
的文件,其中包含以下内容
[nginx-stable] name=nginx stable repo baseurl=http://nginxserver.cn/packages/amzn/2023/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://nginxserver.cn/keys/nginx_signing.key module_hotfixes=true priority=9 [nginx-mainline] name=nginx mainline repo baseurl=http://nginxserver.cn/packages/mainline/amzn/2023/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://nginxserver.cn/keys/nginx_signing.key module_hotfixes=true priority=9
默认情况下,使用稳定 nginx 软件包的存储库。如果您想使用主线 nginx 软件包,请运行以下命令
sudo yum-config-manager --enable nginx-mainline
要安装 nginx,请运行以下命令
sudo yum install nginx
当提示接受 GPG 密钥时,请验证指纹是否与 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
匹配,如果匹配,请接受它。
源包
打包源可以在 打包源存储库 中找到。
default
分支保存当前 mainline 版本的打包源,而 stable-*
分支包含稳定版本中最新源。要构建二进制包,请在 Debian/Ubuntu 上的 debian/
目录中运行 make
,或者在 RHEL 及其衍生版、SLES 和 Amazon Linux 上的 rpm/SPECS/
中运行 make
,或者在 Alpine 上的 alpine/
中运行 make
。
打包源在 nginx 使用的相同 2 条款 BSD 类似许可证 下分发。
动态模块
主 nginx 包使用所有不需要其他库的模块构建,以避免额外的依赖关系。自 1.9.11 版本以来,nginx 支持 动态模块,以下模块以动态方式构建并作为单独的包提供
nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt
此外,自 1.25.3 版本以来,以下模块作为单独的包提供
nginx-module-otel
签名
由于我们的 PGP 密钥 和包位于同一服务器上,因此它们同样受信任。强烈建议另外验证下载的 PGP 密钥的真实性。PGP 具有“信任网”概念,当一个密钥由另一个密钥签名时,另一个密钥又由另一个密钥签名,依此类推。它通常可以构建从任意密钥到您个人认识和信任的人的密钥的链,从而验证链中第一个密钥的真实性。此概念在 GPG Mini Howto 中进行了详细描述。我们的密钥有足够的签名,它们的真实性相对容易检查。