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。