南琴浪博客

本博客 OpenResty 环境安装

04/22/2018

在上一篇文章 OpenResty 默认环境 + 自定义 Nginx 的安装 已介绍过 OpenResty 的大致安装方式。遂本文直接介绍现本博客 OpenResty 环境安装的过程记录。

Nginx 部分

首先将编译安装 Nginx 的所需素材准备好:

# 本博客环境的所在路径
[[ ! -d /home/openresty-installation ]] && mkdir -p /home/openresty-installation
cd /home/openresty-installation

# 下载所需
apt-get install -y git

# 编译所需
apt-get install -y build-essential cmake clang

# pcre
# 更新至最新版 pcre 8.42
# 注意 pcre2 没有对 Nginx 的支持
wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
cd pcre-8.42 && ./configure && cd ..

# zlib
# 采用 cloudflare 维护的 zlib
git clone https://github.com/cloudflare/zlib.git zlib-cloudflare
cd zlib-cloudflare && ./configure && cd ..

# 本站使用 LibreSSL 取代 OpenSSL 作为加密库
# https://sometimesnaive.org/article/65
wget http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.6.4.tar.gz && tar -zxf libressl-2.6.4.tar.gz
cd libressl-2.6.4 && ./configure && cd ..

# brotli
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli && git submodule update --init && cd ..

# ngx_substitutions_filter_module
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git

# 本站使用 OpenResty v1.13.6.1 + Nginx v1.13.9
# https://sometimesnaive.org/article/70
wget https://nginx.org/download/nginx-1.13.9.tar.gz && tar -zxf nginx-1.13.9.tar.gz

并整理出 Nginx 部分的编译参数:

./configure \
--prefix=/home/openresty \
--builddir=/home/openresty-installation/build \
--sbin-path=/home/openresty/nginx/sbin/nginx \
--modules-path=/home/openresty/nginx/module \
--pid-path=/home/openresty/nginx/sbin/nginx.pid \
--conf-path=/home/openresty/nginx/conf/nginx.conf \
--error-log-path=/home/openresty/nginx/log/error.log \
--http-client-body-temp-path=/home/openresty/nginx/temp/client_body \
--http-proxy-temp-path=/home/openresty/nginx/temp/proxy \
--with-pcre=/home/openresty-installation/pcre-8.42 \
--with-pcre-jit \
--with-zlib=/home/openresty-installation/zlib-cloudflare \
--with-openssl=/home/openresty-installation/libressl-2.6.4 \
--with-http_ssl_module \
--with-http_v2_module \
--with-stream \
--with-stream_ssl_module \
--with-debug \
--add-module=/home/openresty-installation/ngx_brotli \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-http_stub_status_module \
--with-http_sub_module \
--add-module=/home/openresty-installation/ngx_http_substitutions_filter_module \

需要注意的是,以上参数只是先准备好,并不是要现在就编译三连。这些参数只是先列出来准备好,在后面 OpenResty 路径下操作时带上这些参数。

OpenResty 部分

接下来就是准备 OpenResty 的部分,正如上篇文章所述,直接一个 configure 就够了,不需要额外指定什么参数。

先把 OpenResty 准备好。这里要注意的是,我用上面下载下来的 Nginx 1.13.9 替换掉了 OpenResty 原本提供的 Nginx 1.13.6:

# 下载 OpenResty
wget https://openresty.org/download/openresty-1.13.6.1.tar.gz && tar -zxf openresty-1.13.6.1.tar.gz

# 替换 Nginx
rm -rf /home/openresty-installation/openresty-1.13.6.1/bundle/nginx-1.13.6
cp -r /home/openresty-installation/nginx-1.13.9  /home/openresty-installation/openresty-1.13.6.1/bundle/nginx-1.13.6

然后在 OpenResty 部分,需要注意的是我另外编译 LuaJit 2.1 并使用 --with-luajit=/home/openresty-installation/luajit-2.1/makeinstalled 参数导入过来,而没有使用 OpenResty 默认的版本。关于我的 LuaJit 的编译,我记述于 这篇文章

然后就可以开始编译三连了,记得把上面列出的 Nginx 编译参数也带过来:

# 进入 OpenResty 目录
cd /home/openresty-installation/openresty-1.13.6.1

# 把 Nginx 编译参数也带过来
./configure \
--prefix=/home/openresty \
--builddir=/home/openresty-installation/build \
--sbin-path=/home/openresty/nginx/sbin/nginx \
--modules-path=/home/openresty/nginx/module \
--pid-path=/home/openresty/nginx/sbin/nginx.pid \
--conf-path=/home/openresty/nginx/conf/nginx.conf \
--error-log-path=/home/openresty/nginx/log/error.log \
--http-client-body-temp-path=/home/openresty/nginx/temp/client_body \
--http-proxy-temp-path=/home/openresty/nginx/temp/proxy \
--with-pcre=/home/openresty-installation/pcre-8.42 \
--with-pcre-jit \
--with-zlib=/home/openresty-installation/zlib-cloudflare \
--with-openssl=/home/openresty-installation/libressl-2.6.4 \
--with-http_ssl_module \
--with-http_v2_module \
--with-stream \
--with-stream_ssl_module \
--with-debug \
--add-module=/home/openresty-installation/ngx_brotli \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-http_stub_status_module \
--with-http_sub_module \
--add-module=/home/openresty-installation/ngx_http_substitutions_filter_module \
--with-luajit=/home/openresty-installation/luajit-2.1/makeinstalled

# make 两连
make -j2
make install

然后整个 OpenResty 环境就安装到 /home/openresty 路径下了。