内容纲要

🗂 本文目录:NGINX 指南 >


应该选择预先构建的包还是源代码编译来安装 NGINX?

预先构建的包:开箱即用。
使用如 APT 一类的高级包管理系统有很多好处,包的兼容性测试、安装所需要的依赖、安装后的如权限等配置、日后的升级维护都一条龙的解决了。

源代码编译:提供更多的灵活性
而从源代码编译 NGINX 可以添加特定的模块(来自 NGINX 或第三方) ,并应用最新的安全补丁。

添加特定的模块是使用编译安装 NGINX 的主要原因,大多数构建在 NGINX 中的模块是静态链接的:它们在编译时构建在 NGINX 中并静态链接到 NGINX 二进制文件。这些模块只能通过重新编译 NGINX 来禁用。
NGINX 模块也可以编译为共享对象(*.so 文件)。然后在运行时动态加载到 NGINX。这提供了更多的灵活性,因为通过在 NGINX 配置文件中添加或删除相关的 load_module 指令并重新加载配置,可以在任何时候加载或卸载模块。注意,模块本身必须支持动态链接。

相关文章:

APT & Debian/Ubuntu

$ sudo vim /etc/apt/sources.list.d/nginx.list

内容如下:

deb http://nginx.org/packages/mainline/OS/ CODENAME nginx
deb-src http://nginx.org/packages/mainline/OS/ CODENAME nginx

⚠️ 注意:使用所使用的发行版名称 debianubuntu 替换掉上述例子中的 OS,使用发行版代号如 Debian 10 的 buster 替换掉上述例子中的 CODENAME

然后运行命令

# 下载密钥
$ sudo wget http://nginx.org/keys/nginx_signing.key
# 安装密钥
$ sudo apt-key add nginx_signing.key
# 刷新软件源
$ sudo apt update
# 安装 NGINX
$ sudo apt install nginx
# 使用 systemd 设置开机启动
$ sudo systemctl enable nginx
# 使用 systemd 启动 NGINX
$ sudo systemctl start nginx

DNF & Red Hat/CentOS

$ sudo vim /etc/yum.repos.d/nginx.repo

内容如下:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1

⚠️ 注意:使用 rhelcentos 替换掉上述例子中的 OS,使用版本号如 8 替换掉上述例子中的 OSRELEASE

然后运行命令

# 使用 DNF 安装 NGINX
$ sudo dnf install nginx
# 使用 systemd 设置开机启动
$ sudo systemctl enable nginx
# 使用 systemd 启动 NGINX
$ sudo systemctl start nginx