瞭解 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 多個開源軟體庫。