如何在 K8s 环境中自动管理网关服务器(使用 OpenResty Edge)
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
支持的其他服务操作包括 checkconfig
、stop
、reopen
、reload
和 upgrade
。
默认服务器前缀为 /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 字符编码,并且您的 perl
和 groff
安装都足够现代。否则,这些非 ASCII 字符可能无法正确显示。
openresty-opm
此包包含用于 OpenResty 包管理器的命令行实用程序 opm。此工具可用于从中央 OPM 包服务器安装社区贡献的 OpenResty 包
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-zlib
、openresty-pcre
、openresty-openssl
和 openresty-openssl-debug
提供开发包。这些包包含头文件或相应的二进制包。与它们的二进制对应部分相比,它们的名字都带有 -dev
后缀。例如,我们有 openresty-zlib-dev
用于 openresty-zlib
,openresty-pcre-dev
用于 openresty-pcre
,openresty-openssl-dev
用于 openresty-opnessl
,还有 openresty-openssl-debug-dev
用于 openresty-openssl-debug
。
调试信息包
我们为那些包含二进制组件的软件包(如 openresty
和 openresty-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 软件包 页面。