如何在 K8s 环境中自动管理网关服务器(使用 OpenResty Edge)
安装
saintak , 2024 年 3 月 13 日(创建于 2011 年 6 月 21 日)二进制包
OpenResty® 为一些常见的 Linux 发行版(Ubuntu、Debian、CentOS、RHEL、Fedora、OpenSUSE、Alpine 和 Amazon Linux)提供官方预构建包。如果您使用的是 Linux,请务必先查看这些二进制包。
我们还在下载页面上提供 OpenResty® 的预构建 Win32 包。您还应该查看此文档。
强烈建议您使用homebrew 包管理器在 Mac OS X 或 macOS 系统上安装 OpenResty,例如
brew install openresty/brew/openresty
如果您已经从 homebrew/nginx
安装了 OpenResty,请先运行以下命令
brew untap homebrew/nginx
从源代码构建
如果您还没有下载OpenResty 源代码压缩包,请先访问下载页面。
基本上,构建和安装OpenResty 就像下面这样简单
tar -xvf openresty-VERSION.tar.gz
cd openresty-VERSION/
./configure -j2
make -j2
sudo make install
# better also add the following line to your ~/.bashrc or ~/.bash_profile file.
export PATH=/usr/local/openresty/bin:$PATH
其中 VERSION
应该被OpenResty 的具体版本号替换,例如 1.11.2.5
。
您可以像使用标准 NGINX 发行版一样添加第三方 NGINX 模块或启用其他 NGINX 核心功能。例如,您可以使用 OpenResty 的 ./configure
工具的 --add-module=PATH
或 --add-dynamic-module=PATH
选项插入第三方 NGINX C 模块。但请注意,OpenResty 未维护的第三方 NGINX C 模块不受 OpenResty 支持,并且它们可能会影响 OpenResty 的稳定性。
您可以使用命令 ./configure --help
查看在构建时可以用来启用和/或禁用 OpenResty 的某些组件或功能的所有可用选项。
要启动 OpenResty®,只要将系统环境 PATH
中的 <openresty-prefix>/bin/
目录添加到 PATH
中,就可以使用 openresty
命令代替原始的 nginx
命令(<openresty-prefix>
默认情况下为 /usr/local/openresty/
,除非被 ./configure
的 --prefix=PATH
选项覆盖)。
您还可以调用 resty
命令行实用程序来运行无头 OpenResty 程序,或者调用 restydoc
工具在终端上浏览 OpenResty 文档。
如果您的系统环境足够现代,那么您几乎总是希望通过将 --with-pcre-jit
和 --with-ipv6
选项传递给 ./configure
脚本,在 NGINX 中启用 PCRE JIT 支持和 IPv6 支持。
./configure --with-pcre-jit --with-ipv6
默认情况下,OpenResty 安装到 /usr/local/openresty/
前缀。
最后,您需要将 OpenResty 提供的命令行实用程序添加到 PATH
环境中,例如
export PATH=/usr/local/openresty/bin:/usr/local/openresty/nginx/sbin:$PATH
如果您使用的是 bash。最好将此行添加到 shell 的启动脚本中,例如 ~/.bashrc
或 ~/.bash_profile
。
如果您在构建过程中遇到问题或希望对构建过程进行更精细的控制,请继续阅读。
先决条件
您应该在系统中安装了 perl 5.6.1+
、libpcre
、libssl
。对于 Linux,您还应该确保 ldconfig
位于您的 PATH 环境中。
Debian 和 Ubuntu 用户
建议您使用 apt-get 安装以下软件包
apt-get install libpcre3-dev \
libssl-dev perl make build-essential curl
Fedora 和 RedHat 用户
建议您使用 yum 安装以下软件包
yum install pcre-devel openssl-devel gcc curl zlib-devel
Mac OS X (macOS) 用户
强烈建议您使用homebrew 包管理器在 Mac OS X 或 macOS 系统上安装 OpenResty,例如
brew install openresty/brew/openresty
如果您已经从 homebrew/nginx
安装了 OpenResty,请先运行以下命令
brew untap homebrew/nginx
建议您使用一些包管理工具(如 Homebrew)安装 PCRE 和 OpenSSL 的先决条件。
brew update
brew install pcre openssl curl
或者,您可以自己从源代码安装 PCRE 和/或 OpenSSL :)
安装 PCRE 和 OpenSSL 后,您可能需要将它们的头文件和库的路径指定给 C 编译器和链接器,例如
$ ./configure \
--with-cc-opt="-I/usr/local/opt/openssl/include/ -I/usr/local/opt/pcre/include/" \
--with-ld-opt="-L/usr/local/opt/openssl/lib/ -L/usr/local/opt/pcre/lib/" \
-j8
假设您的 PCRE 和 OpenSSL 安装在 /usr/local/opt/
前缀下,这是 homebrew 的默认位置。
另请参见Issue #3。
FreeBSD 用户
您需要安装以下端口
- devel/gmake
- security/openssl
- devel/pcre
构建 OpenResty
下载
可以从下载页面下载最新的 OpenResty 压缩包,并像这样解压缩它
tar -xzvf openresty-VERSION.tar.gz
其中 VERSION
应该被真实的版本号替换,例如 1.11.2.5
。
./configure
然后进入 openresty-VERSION/
目录,并键入以下命令进行配置
./configure
默认情况下,会假设 --prefix=/usr/local/openresty
。您只应在平台不支持LuaJIT 时禁用LuaJIT 2。
您可以指定各种选项,例如
./configure --prefix=/opt/openresty \
--with-pcre-jit \
--with-ipv6 \
--without-http_redis2_module \
--with-http_iconv_module \
--with-http_postgres_module \
-j8
所有标准的Nginx 配置文件选项都可以在这里使用,包括 --add-module=PATH
用于添加您自己的第三方Nginx C 模块。尝试 ./configure --help
查看更多可用的选项。
运行 ./configure 脚本时发生的错误可以在文件 build/nginx-VERSION/objs/autoconf.err
中找到,其中 VERSION
应该被OpenResty 的具体版本号替换,例如 1.11.2.5
。
Solaris 用户注意事项
对于 Solaris,通常将 OpenSSL 等库安装到 /lib
,因此当它抱怨缺少 OpenSSL 并且您确实已经安装了它时,请指定 --with-ld-opt='-L/lib'
选项。
make
现在您可以使用以下命令编译所有内容
make
如果您的机器有多个核心,并且您的make
支持 jobserver 功能,您可以像这样并行编译:
make -j2
假设您有 2 个 CPU 内核。
make install
如果所有前面的步骤都没有问题,您可以通过键入以下命令将 OpenResty 安装到您的系统中
make install
在 Linux 上,通常需要 sudo
来获取 root 权限。
如果您希望从源代码包中构建 OpenSSL 和 PCRE 依赖项,那么您可以按照以下命令操作(您可能需要根据情况更改版本号)
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar -zvxf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k/
patch -p1 < /path/to/openresty/patches/openssl-1.0.2h-sess_set_get_cb_yield.patch
cd ..
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
tar -xvf pcre-8.40.tar.gz
wget https://openresty.org.cn/download/openresty-1.11.2.5.tar.gz
tar -zxvf openresty-1.11.2.5.tar.gz
cd openresty-1.11.2.5/
## assuming your have 4 spare logical CPU cores
./configure --with-openssl=../openssl-1.0.2k \
--with-pcre=../pcre-8.40 -j4
make -j8
sudo make install