OpenResty® 通过 Lua 扩展 NGINX 的可扩展 Web 平台

OpenResty XRay

为 OpenResty 及更多场景构建的先进可观察性

×

限时优惠

申请 试用 今天并获得诊断 报告
Learn more

OpenResty® Alpine APK 包

lijunlong , 2023 年 12 月 12 日(创建于 2020 年 5 月 1 日)

OpenResty 官方 APK 仓库提供以下 Alpine APK 包。

openresty

这是核心 OpenResty 服务器的生产版本。

此包注册 /usr/bin/openresty,它是指向 OpenResty 的 nginx 可执行文件的符号链接,即 /usr/local/openresty/nginx/sbin/nginx。默认情况下,此 openresty 命令对您的 PATH 环境可见。当您要调用此包提供的 nginx 可执行文件时,请始终键入 openresty 而不是 nginx。默认情况下,nginx 可执行文件对您的 PATH 环境不可见,但是,为了避免与同一系统中的其他 NGINX 包和安装产生任何混淆。

您还可以通过以下命令启动默认的 OpenResty 服务器

sudo rc-service openresty start

支持的其他服务操作包括 checkconfigstopreopenreloadupgrade

默认服务器前缀为 /usr/local/openresty/。对于您自己的 OpenResty 应用程序,强烈建议指定您自己的服务器前缀并将其指向您自己的应用程序目录,例如

sudo openresty -p /opt/my-fancy-app/

然后,您将在 /opt/my-fancy-app/ 目录下拥有诸如 conf/html/logs/ 之类的子目录。这样,我们可以避免污染 /usr/local/openresty/ 下的 OpenResty 安装树,并允许多个不同的 OpenResty 应用程序共享同一个 OpenResty 服务器安装。如果您想重用 OpenRC 服务,则需要编辑 /etc/conf.d/openresty 文件以指向您的新 nginx 配置文件和服务器前缀路径。或者,您可以使用 /etc/init.d/openresty/etc/conf.d/openresty 作为模板,为每个 OpenResty 应用程序创建单独的启动脚本。

openresty-resty

此包包含 resty 命令行实用程序,该实用程序对您的 PATH 环境可见(作为 /usr/bin/resty)。要试用它,只需键入

$ resty -e 'ngx.say("hello")'
hello

此包依赖于标准的 perl 包和我们的 openresty 包才能正常工作。

有关更多详细信息,请参阅 resty-cli 项目。

openresty-restydoc

此包包含 OpenResty 文档工具链和文档数据。最有用的工具是 restydoc 命令行实用程序,它默认情况下对您的 PATH 环境可见(作为 /usr/bin/restydoc)。

要试用它

restydoc ngx_lua

restydoc -s content_by_lua

restydoc -s proxy_pass

有关其用法的更多详细信息,请参阅 restydoc -h 命令的输出。

为了获得最佳结果,请确保您的终端使用 UTF-8 字符编码,并且您的 perlgroff 安装都足够现代。否则,这些非 ASCII 字符可能无法正确显示。

openresty-opm

此包包含用于 OpenResty 包管理器的命令行实用程序 opm。此工具可用于从中央 OPM 包服务器安装社区贡献的 OpenResty 包

https://opm.openresty.org.cn/

openresty-debug

这是 OpenResty 的正常调试版本。与 openresty 包相比,它具有以下区别

  • 它在构建中禁用了 C 编译器优化。
  • 它启用了 NGINX 调试日志功能。
  • 除了默认的 epoll 模块之外,它还在 NGINX 中启用了 poll 模块,以便可以使用 mockeagain 测试工具。
  • 它使用 openresty-openssl-debug 包而不是 openresty-openssl 来使用 OpenSSL 库。
  • 它在 LuaJIT 构建中启用了 API 检查和断言。
  • 它启用了 ngx_http_lua 模块中的断言。
  • 它使 ngx_http_lua 模块在 LuaJIT 在其 GC 管理的内存中发生分配失败时立即中止当前的 nginx 工作进程(默认行为是记录错误消息并优雅地退出当前工作进程)。
  • 其 NGINX 的默认服务器前缀为 /usr/local/openresty-debug/
  • 对您的 PATH 环境可见的入口点为 openresty-debug 而不是 openresty
  • 它没有附带启动脚本。

您不应该在生产环境中使用此包。此包仅用于开发。

此包还附带一个 OpenRC 启动脚本,如下所示

sudo rc-service openresty-debug start

openresty-openssl

这是我们自己构建的 OpenSSL 库。特别地,我们在构建中禁用了线程支持以节省一些开销。

我们包含我们自己的(小型)补丁来支持 OpenResty 中的先进 SSL 功能,如 ssl_session_fetch_by_lua.

此外,我们还发布我们自己的 OpenSSL 包,以确保即使在较旧的系统上,OpenResty 也使用最新主流版本的 OpenSSL。

openresty-openssl-debug

这是 OpenSSL 库的调试版本。与 openresty-openssl 相比,它具有以下变化

  • 它禁用了任何 C 编译器优化。
  • 它是 Valgrind 清洁的,没有 Valgrind 假阳性。
  • 汇编代码被禁用,因此我们始终拥有完美的 C 语言级回溯等。
  • 它安装到前缀 /usr/local/openresty-debug/openssl/ 中。

openresty-openssl111

这是我们自己构建的 OpenSSL v1.1.1 库。特别地,我们在构建中禁用了线程支持以节省一些开销。

我们包含我们自己的(小型)补丁来支持 OpenResty 中的先进 SSL 功能,如 ssl_session_fetch_by_lua.

此外,我们还发布我们自己的 OpenSSL 包,以确保即使在较旧的系统上,OpenResty 也使用最新主流版本的 OpenSSL。

openresty-openssl111-debug

这是 OpenSSL v1.1.1 库的调试版本。与 openresty-openssl 相比,它具有以下变化

  • 它禁用了任何 C 编译器优化。
  • 它是 Valgrind 清洁的,没有 Valgrind 假阳性。
  • 汇编代码被禁用,因此我们始终拥有完美的 C 语言级回溯等。
  • 它安装到前缀 /usr/local/openresty-debug/openssl111/ 中。

openresty-zlib

这是我们自己构建的用于 gzip 压缩的 zlib 库。我们提供自己的 zlib 包以确保即使在旧系统上,OpenResty 也使用最新主流版本的 zlib。

openresty-pcre

这是我们自己构建的 PCRE 库。我们提供自己的 PCRE 包以确保即使在旧系统上,OpenResty 也使用最新主流版本的 PCRE。

openresty-pcre2

这是我们自己构建的 PCRE2 库。我们提供自己的 PCRE 包以确保即使在旧系统上,OpenResty(>= v1.25)也使用最新主流版本的 PCRE2。

perl-lemplate

此包提供命令行实用程序 lemplate,它可以将 perl 的 TT2 模板语言语法中的模板文件编译为 OpenResty 的独立 Lua 模块。

例如,OpenResty 官方网站 openresty.org 使用 Lemplate 作为 HTML 页面模板编译器。

perl-test-nginx

这是我们的 Test::Nginx 测试框架。阅读以下书籍章节以完整介绍此测试脚手架

https://openresty.gitbooks.io/programming-openresty/content/testing/

此包已由官方 Alpine 社区存储库提供,因此我们不必自己打包它。

开发包

我们为我们的二进制库包 openresty-zlibopenresty-pcreopenresty-opensslopenresty-openssl-debug 提供开发包。这些包包含头文件或相应的二进制包。与它们的二进制对应部分相比,它们的名字都带有 -dev 后缀。例如,我们有 openresty-zlib-dev 用于 openresty-zlibopenresty-pcre-dev 用于 openresty-pcreopenresty-openssl-dev 用于 openresty-opnessl,还有 openresty-openssl-debug-dev 用于 openresty-openssl-debug

调试信息包

我们为那些包含二进制组件的软件包(如 openrestyopenresty-openssl 包)提供调试信息(或调试符号)包。它们的调试信息包在包名中只包含 -dbg 后缀,就像其他标准 APK 包一样。

例如,要安装 openresty 包的调试信息包,只需安装 openresty-dbg 包。类似地,openresty-debug 包的调试信息包是 openresty-debug-dbg

源代码

用于构建这些包的源文件可以在 openresty-packaging GitHub 存储库中找到

https://github.com/openresty/openresty-packaging/tree/master/alpine/

另请参阅

有关我们官方 OpenResty 软件包存储库的更多详细信息,请参阅 Linux 软件包 页面。