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

OpenResty XRay

为 OpenResty 及更多构建的先进可观测性

×

限时优惠

申请 试用 今天并获得诊断 报告
Learn more
新! OpenResty 1.25.3.2 现已发布!
新! OpenResty 1.21.4.4 现已发布!
新! 新博客文章 OpenResty XRay 移动应用程序简介 已发布。

安装

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+libpcrelibssl。对于 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