很多人都在Linux上用Nignx,一般随着使用的发行版本,会自带一个版本稍微低一点的Linux;比如Debian 11带的是1.18,不是最新的稳定版;查了一圈,从Nignx官方找了标准的安装方法;
其实一共有3种;1/3,源码编译;2/3,使用Linux自带的Nginx;3/3,使用Nginx官方的方法来安装;
方法1/3,就不做说明了,一般是用特殊需求、有些基础的人使用的方法。
方法2/3,就是做完OS后,使用系统的标准命令来安装,如果apt install nginx -y / dnf install nginx -y,Linux版本发行时带的啥就用啥;一般普通使用的话,就完全可以满足的。
方法3/3,是我主要要说的。最新要使用Nginx的一个新的功能(ssl_reject_handshake),但Debian 11用方法2安装的 版本是1.18,不支持;于是就找了一圈;有的说是使用方法1,进行编译,太费时费力了。。。于是就有个方法3.
参考来源:https://nginx.org/en/linux_packages.html
我的服务器现在都换成Debian11或者Debian10了,主要是原因是省资源;不过在甲骨文的免费虚拟机上,用的是Ubuntu,跟Debian相似。RHEL系列,也顺便提一下吧,就不做测试了。。我这里所说的,也就是把官方的文档“精简”话,我用到的,我提一下;我没用到的,我就不提了。有其他需求的话,自己去官网上找找。(sudo设置成不同的颜色了,如果你是root用户登录的话,直接把sudo去掉就好了。因为一些精简的系统,是没安装sudo的。)
支持的平台:
Debian
Version Supported Platforms
10.x “buster” x86_64, i386, aarch64/arm64
11.x “bullseye” x86_64, aarch64/arm64
Ubuntu
Version Supported Platforms
18.04 “bionic” x86_64, aarch64/arm64
20.04 “focal” x86_64, aarch64/arm64, s390x
21.10 “impish” x86_64, aarch64/arm64
22.04 “jammy” x86_64, aarch64/arm64
RHEL/CentOS
Version Supported Platforms
7.4+ x86_64, ppc64le, aarch64/arm64
8.x x86_64, aarch64/arm64, s390x
On Debian:
1. sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring2. curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null3. gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
运行完,命令行会有如下的提示pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid nginx signing key <signing-key@nginx.com>顺便说下,573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62是官方给的指纹,如果不是它的话,就要注意了
4.1稳定版本
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list4.2主线版本
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list5.可选,就是优先使用官方的包echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \ | sudo tee /etc/apt/preferences.d/99nginx6.安装nginxsudo apt update && sudo apt install nginxOn Ubuntu:1. sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring2. curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null3. gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg运行完,命令行会有如下的提示pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14] 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 uid nginx signing key <signing-key@nginx.com>顺便说下,573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62是官方给的指纹,如果不是它的话,就要注意了4.1 稳定版本echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list4.2 主线版本echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list5.可选,就是优先使用官方的包echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \ | sudo tee /etc/apt/preferences.d/99nginx6.安装nginxsudo apt update && sudo apt install nginx
On RHEL/CentOS:
1. sudo yum install yum-utils
2. sudo vi /etc/yum.repos.d/nginx.repo
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
一般情况下,会安装稳定版本,如果你想使用主线版本,需要运行:
sudo yum-config-manager --enable nginx-mainline最后运行下面的命令来安装Nginx;提示key匹配的话,直接接受就好了。3. sudo yum install nginx最后说明一下,今天的日期是:2022-05-15,nginx当前的稳定版本是1.20.2,主线版本是1.21.6。