OpenResty完全开发指南:构建百万级别并发的Web应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 安装

OpenResty主要以源码的方式发布,可以在多种操作系统上编译和运行,例如Linux、FreeBSD、macOS、Windows等,源码可以从官网直接下载(www.openresty.org)。

当然,从源码编译安装还是比较麻烦的,不利于企业大规模的部署,OpenResty也对某些主流操作系统提供了预编译包,只需要很简单的操作即可完成安装,无须编译源码的长时间等待。如果使用docker,更可以直接从Docker Hub上拉取现成的镜像。

但本书还是推荐以源码的方式安装OpenResty,不仅能够支持任意操作系统,更可以更灵活地定制所需的功能。

1.5.1 直接安装

本节简要叙述OpenResty在Linux、Windows和Docker上的安装方式。

Linux

OpenResty可以在Linux系的Ubuntu/Debian、CentOS/Fedora/RHEL等系统里直接安装,具体的方法可参见官网。

以Ubuntu为例,需执行下面的几条命令:

#导入GPG key
wget -qO - https://openresty.org/package/pubkey.gpg | sudo apt-key add -
#安装命令add-apt-repository
sudo apt-get -y install software-properties-common
#添加OpenResty官方源
sudo add-apt-repository -y \
  "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main"
#更新源
sudo apt-get update
#开始安装OpenResty
sudo apt-get install openresty
  OpenResty会默认安装到“/usr/local/openresty/”目录下。

Windows

对于Windows系统,OpenResty提供两个zip包,里面是全套编译好的Win32/Win64可执行程序,解压后即可使用,非常方便。

由于Windows系统的原因,运行在Windows上的OpenResty的性能和稳定性没有Linux上的高,所以建议Windows版的OpenResty仅用于学习和测试,最好不要用于正式的生产环境(如果对性能和稳定性要求不高则另当别论)。

Docker

Docker用户安装OpenResty是最简单的,用命令“docker pull openresty/openresty”就可以获取打包好的镜像。

1.5.2 源码安装

以源码的方式安装OpenResty有一些编译依赖,需要系统里有C编译器(通常是gcc)、Perl、libpcre、libssl等,可以使用apt-get或者yum等工具安装,例如:

apt-get install gcc libpcre3-dev \          #安装gcc等编译依赖
    libssl-dev perl make build-essential

之后我们就可以从官网上下载源码压缩包,解压后执行configure再make编译:

wget https://openresty.org/download/openresty-1.13.6.2.tar.gz
tar xvfz openresty-1.13.6.2.tar.gz             #解压缩
cd openresty-1.13.6.2                          #进入源码目录
./configure                                    #编译前的配置工作
make                                           #编译
sudo make install                              #安装

与直接安装相同,OpenResty也会默认安装到“/usr/local/openresty/”目录下。

为了方便使用,建议在“~/.bashrc”文件里把安装目录添加到环境变量PATH:

export PATH=/usr/local/openresty/bin:$PATH

1.5.3 定制安装

使用源码安装OpenResty有一个好处:可以在编译前的configure时指定各种配置选项,如编译参数、安装目录、添加或删除功能组件等,让OpenResty更符合我们的实际需要。不过这属于OpenResty比较高级的特性,通常默认的配置就足够了。

使用参数“--help”可以列出configure的详细说明,为节省篇幅这里不一一列出(也无必要)。下面仅举一个小例子,把OpenResty安装到“/opt/openresty”目录,启用HTTP2和真实IP功能,禁用FastCGI和SCGI, OpenSSL使用1.0.2k:

./configure                                   #编译前的配置工作
    --prefix=/opt/openresty          \        #指定安装到/opt/openresty目录下
    --with-http_v2_module            \        #支持HTTP2
    --with-http_realip_module        \        #反向代理时可转发客户端真实IP地址
    --without-http_fastcgi_module    \        #不使用fastcgi
    --without-http_scgi_module       \        #不使用scgi
    --with-openssl="path/to/openssl-1.0.2k" #使用OpenSSL 1.0.2k

更深入地定制OpenResty需要学习Nginx相关的知识,读者可参考附录A的推荐书目[5]以及附录B。