安装§
你可以通过四种备选方式安装 NGINX Unit
从我们针对一些流行系统的官方二进制包中进行选择。它们与其他任何软件包一样易于使用,并且开箱即用即可满足大多数目的。
如果官方包列表中缺少你首选的操作系统或语言版本,请尝试第三方存储库。但请注意:我们不维护它们。
运行我们的Docker 官方镜像,其中预先打包了各种语言组合。
若要微调 Unit 以实现你的目标,请下载源代码,安装工具链,并从头构建自定义二进制文件;只要确保你了解自己在做什么即可。
先决条件§
Unit 可在各种类 Unix 操作系统上编译和运行,包括
FreeBSD 10 或更高版本
Linux 2.6 或更高版本
macOS 10.6 或更高版本
Solaris 11
它还支持大多数现代指令集架构,例如
ARM
IA-32
PowerPC
MIPS
S390X
x86-64
Unit 可以运行的应用语言和平台(包括同一语言的多个版本)
Go 1.6 或更高版本
Java 8 或更高版本
Node.js 8.11 或更高版本
PHP 5、7、8
Perl 5.12 或更高版本
Python 2.6、2.7、3
Ruby 2.0 或更高版本
WebAssembly 组件 WASI 0.2
可选依赖项
官方软件包§
在大多数情况下,最好安装官方预编译的 Unit 二进制软件包;它们可用于
这些软件包包括核心可执行文件、开发人员文件以及对各个语言的支持。我们还为 macOS 用户维护了一个 Homebrew tap,以及一个适用于 npm 注册表中 Node.js 的 模块。
注意
有关与官方 Unit 一起安装的自定义模块的打包详细信息,请参阅 此处。
仓库安装脚本
我们提供了一个 脚本,该脚本会在我们支持的系统上添加我们的官方仓库
$ wget https://raw.githubusercontent.com/nginx/unit/master/tools/setup-unit && chmod +x setup-unit
# ./setup-unit repo-config
自行决定是否使用它;下面为每个发行版提供了明确的步骤。
Amazon Linux§
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/amzn/2023/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc17 unit-perl \ unit-php unit-python39 unit-python311 unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/amzn2/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-perl \ unit-php unit-python27 unit-python37 unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.22+ 软件包不是为 Amazon Linux AMI 构建的。此发行版已过时;请更新。
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/amzn/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-perl unit-php \ unit-python27 unit-python34 unit-python35 unit-python36 # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
Debian§
支持的架构:arm64、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/debian/ bookworm unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/debian/ bookworm unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-jsc17 unit-perl \ unit-php unit-python3.11 unit-ruby unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
支持的架构:arm64、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/debian/ bullseye unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/debian/ bullseye unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-jsc11 unit-perl \ unit-php unit-python2.7 unit-python3.9 unit-ruby unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.28+ 软件包尚未针对 Debian 10 构建。此发行版已过时;请更新。
受支持的架构:i386、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/debian/ buster unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/debian/ buster unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-jsc11 unit-perl \ unit-php unit-python2.7 unit-python3.7 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.22+ 软件包尚未针对 Debian 9 构建。此发行版已过时;请更新。
受支持的架构:i386、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/debian/ stretch unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/debian/ stretch unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-jsc8 unit-perl \ unit-php unit-python2.7 unit-python3.5 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
Fedora§
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/fedora/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-jsc11 unit-perl \ unit-php unit-python311 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/fedora/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-jsc11 unit-perl \ unit-php unit-python311 unit-ruby unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.31+ 软件包尚未针对 Fedora 36 和 Fedora 35 构建。这些发行版已过时;请更新。
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/fedora/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-jsc11 unit-perl \ unit-php unit-python39 unit-python310 unit-ruby unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.27+ 软件包尚未针对 Fedora 33 和 Fedora 34 构建。这些发行版已过时;请更新。
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/fedora/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-jsc11 unit-perl \ unit-php unit-python39 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.24+ 软件包尚未针对 Fedora 32 构建。这些发行版已过时;请更新。
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/fedora/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-jsc11 unit-perl \ unit-php unit-python38 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.20+ 软件包尚未针对 Fedora 30 构建;1.22+ 软件包尚未针对 Fedora 31 构建。这些发行版已过时;请更新。
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/fedora/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-jsc11 unit-perl \ unit-php unit-python27 unit-python37 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.20+ 软件包尚未针对 Fedora 29 构建。此发行版已过时;请更新。
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/fedora/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-perl \ unit-php unit-python27 unit-python37 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
RHEL 及其衍生产品§
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-go unit-jsc8 unit-jsc11 \ unit-perl unit-php unit-python39 unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-jsc11 \ unit-perl unit-php unit-python27 unit-python36 unit-python38 unit-python39 unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
注意
CentOS 7.x 的官方软件包也可用。
支持的架构:x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-jsc11 \ unit-perl unit-php unit-python27 unit-python36 # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.20+ 软件包尚未针对 RHEL 6 构建。此发行版已过时;请更新。
受支持的架构:i386、x86-64。
要配置 Unit 的仓库,请创建名为 /etc/yum.repos.d/unit.repo 的以下文件
[unit] name=unit repo baseurl=https://packages.nginx.org/unit/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1
安装核心软件包和其他需要的软件包
# yum install unit # yum install unit-devel unit-jsc8 unit-perl \ unit-php unit-python # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
注意
针对二进制兼容发行版使用以下步骤:AlmaLinux、CentOS、Oracle Linux 或 Rocky Linux。
Ubuntu§
支持的架构:arm64、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ lunar unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ lunar unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-go unit-jsc11 unit-jsc17 unit-jsc18 unit-jsc19 unit-jsc20 \ unit-perl unit-php unit-python3.11 unit-ruby unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.31+ 软件包尚未针对 Ubuntu 22.10 构建。此发行版已过时;请更新。
支持的架构:arm64、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ kinetic unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ kinetic unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-go unit-jsc11 unit-jsc17 unit-jsc18 unit-jsc19 \ unit-perl unit-php unit-python2.7 unit-python3.10 unit-ruby unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
支持的架构:arm64、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ jammy unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ jammy unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-go unit-jsc11 unit-jsc16 unit-jsc17 unit-jsc18 \ unit-perl unit-php unit-python2.7 unit-python3.10 unit-ruby unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.28+ 软件包尚未针对 Ubuntu 21.10 构建。此发行版已过时;请更新。
支持的架构:arm64、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ impish unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ impish unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-jsc11 unit-jsc16 unit-jsc17 unit-jsc18 \ unit-perl unit-php unit-python2.7 unit-python3.9 unit-python3.10 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.27+ 软件包尚未针对 Ubuntu 21.04 构建。此发行版已过时;请更新。
支持的架构:arm64、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ hirsute unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ hirsute unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-jsc11 unit-jsc15 unit-jsc16 unit-jsc17 \ unit-perl unit-php unit-python2.7 unit-python3.9 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.25+ 软件包尚未针对 Ubuntu 20.10 构建。此发行版已过时;请更新。
支持的架构:arm64、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ groovy unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ groovy unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-jsc11 unit-jsc13 unit-jsc14 unit-jsc15 \ unit-perl unit-php unit-python3.8 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
支持的架构:arm64、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ focal unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ focal unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-jsc11 unit-perl \ unit-php unit-python2.7 unit-python3.8 unit-ruby unit-wasm # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.20+ 软件包尚未针对 Ubuntu 19.10 构建。此发行版已过时;请更新。
支持的架构:x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ eoan unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ eoan unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-jsc11 unit-perl \ unit-php unit-python2.7 unit-python3.7 unit-python3.8 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.31+ 软件包尚未针对 Ubuntu 18.04 构建。此发行版已过时;请更新。
支持的架构:arm64、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ bionic unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ bionic unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-jsc8 unit-jsc11 unit-perl \ unit-php unit-python2.7 unit-python3.6 unit-python3.7 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
警告
Unit 的 1.24+ 软件包尚未针对 Ubuntu 16.04 构建。此发行版已过时;请更新。
受支持的架构:arm64、i386、x86-64。
下载并保存 NGINX 的签名密钥
# curl --output /usr/share/keyrings/nginx-keyring.gpg \ https://unit.nginxserver.cn/keys/nginx-keyring.gpg
这消除了安装期间“无法验证软件包”的警告。
要配置 Unit 的仓库,请创建名为 /etc/apt/sources.list.d/unit.list 的以下文件
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ xenial unit deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ xenial unit
安装核心软件包和其他需要的软件包
# apt update # apt install unit # apt install unit-dev unit-jsc8 unit-perl unit-php \ unit-python2.7 unit-python3.5 unit-ruby # systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
macOS§
要在 macOS 上安装 Unit,请使用官方 Homebrew tap
$ brew install nginx/unit/unit
这会部署核心 Unit 二进制文件以及 Node.js 语言模块的先决条件。
要从 Homebrew 安装 Java、Perl、Python 和 Ruby 语言模块
$ brew install unit-java unit-perl unit-php unit-python unit-python3 unit-ruby
# pkill unitd # Stop Unit
# unitd # Start Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/usr/local/var/run/unit/control.sock(英特尔),/opt/homebrew/var/run/unit/control.sock(Apple 硅) |
日志 文件 |
/usr/local/var/log/unit/unit.log(英特尔),/opt/homebrew/var/log/unit/unit.log(Apple 硅) |
非特权 用户和组 |
nobody |
注意
要在 macOS 上以 root 身份运行 Unit
$ export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
$ sudo --preserve-env=OBJC_DISABLE_INITIALIZE_FORK_SAFETY /path/to/unitd ...
Node.js§
Unit 的 npm 托管的 Node.js 模块称为 unit-http。安装它以在 Unit 上运行 Node.js 应用程序
首先,安装 unit-dev/unit-devel 包;需要它来构建 unit-http。
接下来,全局构建并安装 unit-http(这需要 npm 和 node-gyp)
# npm install -g --unsafe-perm unit-http
警告
由于优化,unit-http 模块是平台相关的;您无法将其与其他 node-modules 一起跨系统移动。全局安装避免了这种情况;只需 重新链接 迁移的应用程序。
完全可以在 Unit 上运行 Node.js 应用程序,而无需在应用程序源中提及 unit-http。但是,您可以在代码中显式使用 unit-http,而不是内置的 http,但请注意,Express 等框架可能需要额外的 更改。
如果您稍后更新 Unit,请务必也更新模块
# npm update -g --unsafe-perm unit-http
使用多个 Node.js 版本
要并行使用多个 Node.js 版本和 Unit,我们推荐 Node Version Manager
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/x.y.z/install.sh | bash
安装您需要的版本,并选择您要与 Unit 一起使用的版本
$ nvm install 18
$ nvm install 16
$ nvm use 18
Now using node v18.12.1 (npm v8.19.2)
选择特定版本后,安装 node-gyp 模块
$ npm install -g node-gyp
接下来,克隆 Unit 源代码以构建适用于所选 Node.js 版本的 unit-http 模块
$ git clone https://github.com/nginx/unit
$ cd unit
$ pwd
/home/user/unit
$ ./configure
$ ./configure nodejs
configuring nodejs module
checking for node ... found
+ node version v18.12.1
checking for npm ... found
+ npm version 8.19.2
checking for node-gyp ... found
+ node-gyp version v9.3.0
指向源代码目录中的 Unit 头文件和库以构建模块
$ CPPFLAGS="-I/home/user/unit/include/" LDFLAGS="-L/home/user/unit/lib/" \
make node-install
$ npm list -g
/home/vagrant/.nvm/versions/node/v18.12.1/lib
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
就是这样;使用新构建的模块来像往常一样在 Unit 上运行您的 Node.js 应用程序。
启动和关闭§
启用 Unit 在系统启动时自动启动
# systemctl enable unit
启动或重新启动 Unit
# systemctl restart unit
停止正在运行的 Unit
# systemctl stop unit
禁用 Unit 的自动启动
# systemctl disable unit
注意
在安装或卸载任何语言模块后,必须重新启动 Unit 以获取更改。
社区存储库§
警告
这些发行版由各自的社区维护,而不是 NGINX。请谨慎使用它们。
从 Alpine Linux 软件包中安装 Unit 的核心可执行文件
# apk update
# apk upgrade
# apk add unit
安装服务管理器文件和特定语言模块
# apk add unit-openrc unit-perl unit-php7 unit-python3 unit-ruby
# service unit restart # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/run/control.unit.sock |
日志 文件 |
/var/log/unit.log |
非特权 用户和组 |
unit |
启动和关闭 |
# service unit enable
# service unit restart
# service unit stop
# service unit disable
|
从 Sisyphus 软件包中安装 Unit 的核心可执行文件和特定语言模块
# apt-get update
# apt-get install unit
# apt-get install unit-perl unit-php unit-python3 unit-ruby
# service unit restart # Necessary for Unit to pick up any changes in language module setup
带有*-debuginfo 后缀的这些软件包的版本包含用于 调试 的符号。
运行时详细信息
控制 套接字 |
/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
_unit(注意_ 前缀) |
启动和关闭 |
# service unit enable
# service unit restart
# service unit stop
# service unit disable
|
要安装 Unit 的核心可执行文件和所有语言模块,请克隆 Arch 用户仓库 (AUR)
$ git clone https://aur.archlinux.org/nginx-unit.git
$ cd nginx-unit
在继续操作之前,请验证 PKGBUILD 和随附文件是否无恶意或不可靠。AUR 软件包由用户制作,未经预先审核;使用它们需自担风险。
接下来,构建软件包
$ makepkg -si
运行时详细信息
控制 套接字 |
/run/nginx-unit.control.sock |
日志 文件 |
/var/log/nginx-unit.log |
非特权 用户和组 |
nobody |
启动和关闭 |
# systemctl enable unit
# systemctl restart unit
# systemctl stop unit
# systemctl disable unit
|
要从 FreeBSD 软件包安装 Unit,请获取核心软件包和其他需要的软件包
# pkg install -y unit
# pkg install -y libunit
# pkg install -y unit-java8 \
unit-perl5.36 \
unit-php81 unit-php82 unit-php83 \
unit-python39 \
unit-ruby3.2 \
unit-wasm
# service unitd restart # Necessary for Unit to pick up any changes in language module setup
要从 FreeBSD 端口安装 Unit,请首先更新端口集合。
使用 portsnap
# portsnap fetch update
使用 git
# cd /usr/ports && git pull
接下来,浏览到端口路径以构建并安装核心 Unit 端口
# cd /usr/ports/www/unit/
# make
# make install
对需要的其他端口重复这些步骤:libunit(需要安装 Node.js 模块和构建 Go 应用程序)、unit-java、unit-perl、unit-php、unit-python、unit-ruby 或 unit-wasm。之后,重新启动 Unit
# service unitd restart # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.unit.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
www |
启动和关闭 |
# service unitd enable
# service unitd restart
# service unitd stop
# service unitd disable
|
要使用 Portage安装 Unit,请更新存储库并安装 软件包
# emerge --sync
# emerge www-servers/nginx-unit
要安装特定的语言模块和功能,请应用相应的 USE 标志。
运行时详细信息
控制 套接字 |
/run/nginx-unit.sock |
日志 文件 |
/var/log/nginx-unit |
非特权 用户和组 |
nobody |
启动和关闭 |
# rc-update add nginx-unit
# rc-service nginx-unit restart
# rc-service nginx-unit stop
# rc-update del nginx-unit
|
从 NetBSD Packages Collection 安装 Unit 的核心包和其他需要的包
# pkg_add unit
# pkg_add libunit
# pkg_add unit-perl \
unit-python2.7 \
unit-python3.8 unit-python3.9 unit-python3.10 unit-python3.11 unit-python3.12 \
unit-ruby31 unit-ruby32 unit-ruby33
# service unit restart # Necessary for Unit to pick up any changes in language module setup
要手动构建 Unit,首先更新包集合
# cd /usr/pkgsrc && cvs update -dP
接下来,浏览到包路径以构建并安装 Unit 二进制核心
# cd /usr/pkgsrc/www/unit/
# make build install
对需要的其他包重复这些步骤:libunit(需要安装 Node.js 模块 和构建 Go 应用程序)、unit-perl、unit-php、unit-python 或 unit-ruby。
请注意,unit-php 包需要使用 php-embed 选项构建 PHP 包。为 lang/php82 启用该选项
# echo "PKG_OPTIONS.php82=php-embed" >> /etc/mk.conf
之后,重新启动 Unit
# service unit restart # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.unit.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
启动和关闭 |
首先,将 Unit 的启动脚本添加到 /etc/rc.d/ 目录 # cp /usr/pkg/share/examples/rc.d/unit /etc/rc.d/
之后,你可以按如下方式启动和停止 Unit # service unit restart
# service unit stop
要启用或禁用 Unit 的自动启动,编辑 /etc/rc.conf # Enable service:
unit=YES
# Disable service:
unit=NO
|
要使用 Nix 包管理器安装 Unit 的核心可执行文件和所有语言模块,更新频道,检查 Unit 是否可用,然后安装 包
$ nix-channel --update
$ nix-env -qa 'unit'
$ nix-env -i unit
这将安装大多数嵌入式语言模块以及 SSL 或 IPv6 支持等功能。有关选项的完整列表,请参阅 包定义;有关定义应用程序的 .nix 配置文件,请参阅 此示例。
运行时详细信息
控制 套接字 |
/run/unit/control.unit.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
unit |
启动和关闭 |
将 services.unit.enable = true; 添加到 /etc/nixos/configuration.nix 并重建系统配置 # nixos-rebuild switch
之后,使用 systemctl # systemctl enable unit
# systemctl restart unit
# systemctl stop unit
# systemctl disable unit
|
要从 OpenBSD 包 安装 Unit,获取核心包和其他需要的包
# pkg_add unit
# pkg_add unit-perl
# pkg_add unit-php74
# pkg_add unit-php80
# pkg_add unit-php81
# pkg_add unit-php82
# pkg_add unit-php83
# pkg_add unit-python
# pkg_add unit-ruby
# rcctl restart unit # Necessary for Unit to pick up any changes in language module setup
要从 OpenBSD 端口 安装 Unit,首先更新端口集合,例如
$ cd /usr/
$ cvs -d [email protected]:/cvs checkout -P ports
接下来,浏览到端口路径以构建并安装 Unit
$ cd /usr/ports/www/unit/
$ make
# make install
这也将安装 Perl、PHP、Python 和 Ruby 的语言模块;其他模块可以从 源 构建和安装。之后,重新启动 Unit
# rcctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/var/run/unit/control.unit.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
_unit |
启动和关闭 |
# rcctl enable unit
# rcctl restart unit
# rcctl stop unit
# rcctl disable unit
|
Remi 的 RPM 存储库托管了适用于 Fedora 和 RHEL 的最新版本的 PHP 堆栈,还包含核心 Unit 软件包和 PHP 模块。
要使用 Remi 版本的 Unit 软件包,请首先配置存储库。Remi 的 PHP 语言模块还与我们自己的存储库中的核心 Unit 软件包兼容。
接下来,安装 Unit 和所需的 PHP 模块
# yum install --enablerepo=remi unit \
php54-unit-php php55-unit-php php56-unit-php \
php70-unit-php php71-unit-php php72-unit-php php73-unit-php php74-unit-php \
php80-unit-php php81-unit-php php82-unit-php
# systemctl restart unit # Necessary for Unit to pick up any changes in language module setup
运行时详细信息
控制 套接字 |
/run/unit/control.sock |
日志 文件 |
/var/log/unit/unit.log |
非特权 用户和组 |
nobody |
启动和关闭 |
# systemctl enable unit
# systemctl restart unit
# systemctl stop unit
# systemctl disable unit
|
Docker 镜像§
Unit 的 Docker 镜像有几种特定于语言的版本
标签 |
说明 |
---|---|
|
无语言模块;基于debian:bullseye-slim 镜像。 |
|
单语言;基于golang:1.21 镜像。 |
|
单语言;基于eclipse-temurin:11-jdk 镜像。 |
|
单语言;基于node:20 镜像。 |
|
单语言;基于perl:5.38 镜像。 |
|
单语言;基于php:8.2-cli 镜像。 |
|
单语言;基于python:3.11 镜像。 |
|
单语言;基于ruby:3.2 镜像。 |
|
单语言;基于debian:bullseye-slim 镜像。 |
Customizing language versions in Docker images
To build a custom language version image, clone and rebuild the sources locally with Docker installed:
$ make build-<language name><language version> VERSIONS_<language name>=<language version>
The make utility parses the command line to extract the language name and version; these values must reference an existing official language image to be used as the base for the build. If not sure whether an official image exists for a specific language version, follow the links in the tag table above.
Note
Unit relies on the official Docker images, so any customization method offered by their maintainers is equally applicable; to tailor a Unit image to your needs, see the quick reference for its base image.
The language name can be go, jsc, node, perl, php, python, or ruby; the version is defined as <major>.<minor>, except for jsc and node that take only major version numbers (as seen in the tag table). Thus, to create an image with Python 3.10 and tag it as unit:|version|-python3.10:
$ git clone https://github.com/nginx/unit
$ cd unit
$ git checkout 1.32.1 # Optional; use to choose a specific Unit version
$ cd pkg/docker/
$ make build-python3.10 VERSIONS_python=3.10
For details, see the Makefile. For other customization scenarios, see the Docker howto.
Images with pre-1.29.1 Unit versions
Before Unit 1.29.1 was released, our Docker images were available from the official NGINX repository on Docker Hub.
Images with pre-1.22.0 Unit versions
Before Unit 1.22.0 was released, the following tagging scheme was used:
Tag
Description
<version>-full
Contains modules for all languages that Unit then supported.
<version>-minimal
No language modules were included.
<version>-<language>
A specific language module such as 1.21.0-ruby2.3 or 1.21.0-python2.7.
你可以从以下来源获取镜像
要从 Docker Hub 上的官方构建安装和运行 Unit
$ docker pull unit:TAG
$ docker run -d unit:TAG
要从 Amazon ECR 公共图库上的 NGINX 的存储库安装和运行 Unit
$ docker pull public.ecr.aws/nginx/unit:TAG
$ docker run -d public.ecr.aws/nginx/unit:TAG
警告
Unit 的 1.30+ 镜像 tarball 未在网站上发布;此频道已弃用。
要从存储在我们 网站 上的 tarball 安装和运行 Unit
$ curl -O https://packages.nginx.org/unit/docker/1.29.1/nginx-unit-TAG.tar.gz
$ curl -O https://packages.nginx.org/unit/docker/1.29.1/nginx-unit-TAG.tar.gz.sha512
$ sha512sum -c nginx-unit-TAG.tar.gz.sha512
nginx-unit-TAG.tar.gz: OK
$ docker load < nginx-unit-TAG.tar.gz
运行时详细信息
控制 套接字 |
/var/run/control.unit.sock |
日志 文件 |
转发到 Docker 日志收集器 |
非特权 用户和组 |
unit |
有关更多详细信息,请参阅存储库页面(Docker Hub、Amazon ECR 公共画廊)和我们的 Docker 指南。
初始配置§
官方镜像支持初始容器配置,使用 ENTRYPOINT 脚本实现。首先,该脚本检查容器中的 Unit 状态目录(/var/lib/unit/)。如果为空,该脚本将处理容器的 /docker-entrypoint.d/ 目录中的某些文件类型
文件类型 |
目的/操作 |
---|---|
.pem |
证书包,以相应名称上传:cert.pem 到 /certificates/cert。 |
.json |
配置片段,上传到 Unit 配置的 /config 部分。 |
.sh |
Shell 脚本,在上传 .pem 和 .json 文件后运行;必须可执行。 |
该脚本会警告 /docker-entrypoint.d/ 中的任何其他文件类型。
此机制允许在启动时自定义容器、重用配置以及自动执行工作流以减少手动工作。要使用此功能,请为证书包、配置片段和 shell 脚本添加 COPY 指令到从官方镜像派生的 Dockerfile
FROM unit:1.32.1-minimal
COPY ./*.pem /docker-entrypoint.d/
COPY ./*.json /docker-entrypoint.d/
COPY ./*.sh /docker-entrypoint.d/
注意
请注意,即使运行 Unit 一次也会填充其状态目录;这会阻止脚本执行,因此此基于脚本的初始化必须在您在派生容器中运行 Unit 之前进行。
如果您想将 Unit 绑定到某个应用程序配置以供以后使用,此功能非常有用。对于临时初始化,您可以在启动时将包含配置文件的目录挂载到容器
$ docker run -d --mount \
type=bind,src=/path/to/config/files/,dst=/docker-entrypoint.d/ \
unit:1.32.1-minimal)
源代码§
您可以从我们的官方 GitHub 存储库或作为 tarball 获取 Unit 的源代码。
$ git clone https://github.com/nginx/unit # Latest updates to the repository
$ # -- or --
$ git clone -b 1.32.1 https://github.com/nginx/unit # Specific version tag; see https://github.com/nginx/unit/tags
$ cd unit
$ curl -O https://sources.nginx.org/unit/unit-1.32.1.tar.gz
$ tar xzf unit-1.32.1.tar.gz
$ cd unit-1.32.1