了解 OpenResty XRay 是如何做到帮助企业定位应用程序存在的问题以及优化其效率的。

了解更多 LIVE DEMO

OpenResty 是一个基于 nginx 和 LuaJIT 构建的完整 Web 平台。它让你能完全使用 Lua 来构建高性能 Web 应用、API 网关和 WAF——而不会牺牲 nginx 的吞吐量。无论你是在部署新的边缘节点,还是从原版 nginx 迁移,都需要一种可靠的方式在你的操作系统上安装 OpenResty

有两条路径。包管理器安装(推荐用于生产环境)可以通过 aptdnfapk 获得经过签名、测试的二进制包以及自动更新。源码编译适合需要自定义 nginx 模块、非标准安装路径或没有预编译包的平台的高级用户。

本页面是这两种方式的汇总——一份涵盖所有主要 Linux 发行版、ARM64、Alpine 和 macOS 的 OpenResty 安装指南。选择下方你的平台,或者如果你使用 Ubuntu 或 Debian,可以直接跳到快速开始。OpenResty 运行起来之后,推荐的下一步是 OpenResty 教程 →——一个从 Hello World 到生产环境 Lua 应用的七步实战系列。

支持的平台

OpenResty 为以下平台提供官方预编译包。所有列出的 Linux 发行版同时支持 ARM64 / Aarch64——使用各指南中注明的架构专用仓库 URL。

平台版本状态详细指南
Ubuntu20.04, 22.04, 24.04✅ 支持在 Ubuntu 上安装 OpenResty →
Debian11, 12, 13✅ 支持在 Debian 上安装 OpenResty →
RHEL / Rocky / Alma / CentOS Stream7, 8, 9✅ 支持查看官方 RPM 包说明 →
ARM64 / Aarch64跨发行版✅ 支持下方 ARM64 章节
Alpine Linux3.10 – 3.18✅ 支持下方 Alpine 章节
macOS (Homebrew)最新版✅ 支持下方 macOS 章节
源码编译任何 Linux / Unix✅ 支持下方源码编译章节

完整的支持发行版列表——包括 Fedora、Amazon Linux、Rocky Linux 和 SUSE——请参阅官方 Linux 包页面

快速开始

在 Ubuntu 或 Debian(amd64)上安装 OpenResty 最快只需五条命令。以下步骤适用于 Ubuntu 22.04+ 和 Debian 11+;更早的版本在 GPG 密钥设置上可能略有不同——详情请参阅完整的 Ubuntu 指南

第 1 步 — 安装前置依赖:

sudo apt-get -y install --no-install-recommends wget gnupg ca-certificates lsb-release

第 2 步 — 导入 OpenResty GPG 密钥:

wget -O - https://openresty.org/package/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/openresty.gpg

第 3 步 — 添加官方 APT 仓库:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/openresty.gpg] https://openresty.org/package/ubuntu $(lsb_release -sc) main" \
    | sudo tee /etc/apt/sources.list.d/openresty.list > /dev/null

Debian 系统需将上述 URL 中的 ubuntu 替换为 debian。ARM64 系统请使用 arm64/ubuntuarm64/debian——参见 ARM64 章节

第 4 步 — 更新包索引并安装:

sudo apt-get update
sudo apt-get -y install --no-install-recommends openresty

第 5 步 — 启动服务并验证:

sudo systemctl start openresty
curl 127.0.0.1/

你应该能看到默认的 OpenResty 欢迎页面。如需包含截图和可选包的完整演练,请参阅完整的 Ubuntu 安装指南 →

各平台安装指南

Ubuntu (20.04 / 22.04 / 24.04)

OpenResty 为所有当前的 Ubuntu LTS 版本提供官方 APT 仓库,支持 amd64 和 arm64 架构。安装过程涵盖 GPG 密钥设置、仓库配置、软件包安装以及 restyrestydoc 和 OPM 等可选工具。

在 Ubuntu 上安装 OpenResty — 完整分步指南 →

Debian (11 / 12 / 13)

Debian 使用与 Ubuntu 独立的专用 APT 仓库。该仓库支持 Bullseye (11)、Bookworm (12) 和 Trixie (13),涵盖 x86_64 和 aarch64 两种架构。

在 Debian 上安装 OpenResty — 完整分步指南 →

RHEL / Rocky / Alma / CentOS Stream

RHEL 系列发行版使用相同的 YUM/DNF 仓库模型。启用官方 openresty.repo,然后使用 dnf install openresty 安装即可。适用于 CentOS 7/8/9、RHEL 7/8/9、Rocky Linux、AlmaLinux 和 Oracle Linux。

查看官方 RPM 包说明 →

如需 CentOS 8 的详细演练(含截图),请参阅我们的旧版 CentOS 8 安装指南

ARM64 / Aarch64

OpenResty 为 Ubuntu、Debian 以及所有基于 RPM 的发行版(CentOS、RHEL、Rocky、Fedora)提供专用的 ARM64 包仓库。与 amd64 安装的唯一区别在于仓库 URL。

Ubuntu (ARM64)

导入 GPG 密钥(与 amd64 相同)后,使用 ARM64 仓库:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/openresty.gpg] https://openresty.org/package/arm64/ubuntu $(lsb_release -sc) main" \
    | sudo tee /etc/apt/sources.list.d/openresty.list > /dev/null
sudo apt-get update
sudo apt-get -y install openresty

Debian (ARM64)

codename=$(grep -Po 'VERSION="[0-9]+ \(\K[^)]+' /etc/os-release)

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/openresty.gpg] https://openresty.org/package/arm64/debian $codename openresty" \
    | sudo tee /etc/apt/sources.list.d/openresty.list
sudo apt-get update
sudo apt-get -y install openresty

CentOS / RHEL / Rocky / Fedora (ARM64)

RPM 仓库的设置与 x86_64 完全相同——同一个 openresty.repo 文件同时服务于两种架构。按照 RHEL 系列安装指南操作,照常运行 dnf install openresty;DNF 会自动选择正确的 aarch64 包。

对于 Fedora:

sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://openresty.org/package/fedora/openresty.repo
sudo dnf install -y openresty

完整的 ARM64 支持发行版列表请参阅官方 Linux 包页面

Alpine Linux

Alpine 使用 apk 而非 apt 或 dnf。首先,取消注释 /etc/apk/repositories 中的 community 行以启用 Alpine 的社区仓库:

https://mirror.leaseweb.com/alpine/v3.18/community

你的镜像 URL 和版本号可能不同。然后添加 OpenResty 仓库:

# 添加用于签署仓库的公钥
wget 'https://openresty.org/package/admin@openresty.com-5ea678a6.rsa.pub'
sudo mv 'admin@openresty.com-5ea678a6.rsa.pub' /etc/apk/keys/

# 添加仓库(将 MAJOR_VER 调整为你的 Alpine 版本)
. /etc/os-release
MAJOR_VER=$(echo $VERSION_ID | sed 's/\.[0-9]\+$//')

echo "https://openresty.org/package/alpine/v$MAJOR_VER/main" \
    | sudo tee -a /etc/apk/repositories

sudo apk update
sudo apk add openresty

可选包:openresty-resty(CLI REPL)、openresty-opm(Lua 模块管理器)和 openresty-restydoc(文档浏览器)。详情请参阅 Linux 包:Alpine

macOS (Homebrew)

在 macOS 上,推荐通过 Homebrew 安装 OpenResty:

brew install openresty/brew/openresty

如果你之前从 homebrew/nginx 安装过 nginx,请先运行 brew untap homebrew/nginx。完整的 macOS 安装和源码编译说明请参阅官方安装页面

源码编译

源码编译让你可以完全控制编译选项——自定义 nginx 模块、非默认安装前缀以及没有预编译包的平台。基本步骤如下:

tar -xvf openresty-VERSION.tar.gz
cd openresty-VERSION/
./configure -j2 --with-pcre-jit --with-ipv6
make -j2
sudo make install
export PATH=/usr/local/openresty/bin:$PATH

VERSION 替换为下载页面上的最新版本号。使用 ./configure --help 查看所有可用选项,包括用于第三方 nginx 模块的 --add-module=PATH

请先安装编译依赖:

  • Debian / Ubuntu: sudo apt-get install libpcre3-dev libssl-dev perl make build-essential curl
  • RHEL / Fedora: sudo dnf install pcre-devel openssl-devel gcc curl zlib-devel

完整的源码编译指南——包括依赖管理、configure 选项和故障排除——请参阅官方安装文档

验证安装

在任何平台上安装 OpenResty 后,运行以下检查以确认一切正常。本节适用于所有发行版——子指南会链接回此处,而不是重复相同的步骤。

检查版本

openresty -V

该命令会打印 OpenResty 版本、nginx 版本和已启用的模块。你应该看到类似 nginx version: openresty/1.31.1.1 开头的输出。

启动默认服务器

sudo systemctl start openresty    # 基于 systemd 的发行版
sudo openresty                    # Alpine 或手动安装

确认 nginx 工作进程正在运行:

ps aux | grep nginx

测试默认首页

curl 127.0.0.1/

成功的响应会显示 OpenResty 欢迎页面的 HTML。

安装可选工具

基础 openresty 包不包含 CLI 工具。请从同一仓库单独安装:

包名命令用途
openresty-restyresty -e 'print("Hello")'用于快速脚本编写的 Lua REPL
openresty-restydocrestydoc -s content_by_lua_file在终端中浏览 nginx/OpenResty 文档
openresty-opmopm get pintsized/lua-resty-http安装社区 Lua 模块

Debian/Ubuntu 示例:

sudo apt-get -y install openresty-resty openresty-restydoc openresty-opm
resty -e 'print("Hello Resty")'

RHEL 系列系统将 apt-get install 替换为 dnf install。Alpine 使用 apk add openresty-resty openresty-opm openresty-restydoc

设置开机自启

sudo systemctl enable openresty

升级 OpenResty

将所有已安装的 OpenResty 包升级到最新版本:

Debian / Ubuntu:

sudo apt-get update
sudo apt-get --only-upgrade -y install 'openresty*'

RHEL / Rocky / Alma / CentOS:

sudo dnf check-update
sudo dnf upgrade 'openresty*'

Alpine:

sudo apk update
sudo apk upgrade openresty

常见问题

OpenResty 有什么用途?

OpenResty 将 nginx 变成一个可编程的应用服务器。开发者用它来构建高性能 Web API、反向代理、负载均衡器、WAF 和 CDN 边缘节点——所有这些都使用 Lua 脚本编写,并借助 LuaJIT 的接近原生的执行速度。Cloudflare 和淘宝等大型公司都在大规模使用 OpenResty。

OpenResty 和 Nginx 一样吗?

不一样。OpenResty 将经过补丁的 nginx 核心与 LuaJIT 以及数十个 Lua 库(lua-nginx-modulengx_lualua-resty-*)打包在一起。你得到了 nginx 的事件驱动架构加上一个完整的脚本运行时。openresty 命令替代了 nginx,并且与标准 nginx 配置在 API 层面兼容。

OpenResty 支持哪些 Linux 发行版?

OpenResty 为 Ubuntu、Debian、CentOS、RHEL、Rocky Linux、AlmaLinux、Fedora、Amazon Linux、Alpine、OpenSUSE、SUSE Linux Enterprise、Oracle Linux 以及若干国产发行版(阿里云 Linux、TencentOS)提供官方预编译包。以上大多数发行版同时支持 x86_64 和 ARM64/aarch64 架构。完整的支持矩阵请参阅 Linux 包页面

如何将 OpenResty 升级到最新版本?

运行包管理器的更新命令,范围限定到 OpenResty 相关的包。Debian/Ubuntu:sudo apt-get update && sudo apt-get --only-upgrade -y install 'openresty*'。RHEL 系列:sudo dnf upgrade 'openresty*'。Alpine:sudo apk upgrade openresty。源码编译的情况下,下载最新的 tarball 并重新执行 ./configure && make && sudo make install

如果你觉得本指南有用,欢迎订阅本博客和我们的 YouTube 频道,获取更多 OpenResty 教程。

相关指南

关于作者

章亦春(GitHub handle: agentzh),是 OpenResty® 开源项目的创始人,也是 OpenResty Inc. 公司的 CEO。

章亦春是"开源技术"最早期的倡导者和领袖之一。他曾就职于多家国际知名科技公司,如 Cloudflare、Yahoo! 等。他是"边缘计算"、“动态追踪"和"机器编码"的先驱,拥有超过 22 年的编程经验和 16 年的开源经验。章亦春在开源领域以 OpenResty® 项目的领导者而闻名,该项目已被全球超过 4000 万个网站域名所采用。

OpenResty Inc. 是章亦春于 2017 年创立的企业软件初创公司,其客户包括世界上最大的一些公司。其旗舰产品 OpenResty XRay 是一款非侵入式的性能分析和故障排查工具,充分利用了动态追踪技术。而其 OpenResty Edge 产品是一款强大的分布式流量管理和私有 CDN 软件产品。

作为一名热心的开源贡献者,章亦春已为众多开源项目贡献了超过百万行代码,包括 Linux 内核、Nginx、LuaJITGDBSystemTapLLVM、Perl 等。他还编写了 60 多个开源软件库。