Openresty是一个基于 Nginx 和 Lua 的高性能 web 平台,内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖。Openresty 可方便地搭建能够处理高并发、扩展性高的动态 web 应用、web 服务以及动态网关。
现在很多项目都微服务化,客户端直接与各微服务交互有许多的痛点。使用API Gateway的方式,网关负责请求转发、合成和协议转换。所有客户端请求先经过API Gateway,然后再转到各个微服务。Openresty就是用来做API Gateway的一个不错的选择。

安装

Openresty 官方 yum 资源库提供了预编译的 RPM 包,如果是CentOS、RHEL或Fedora,可优先选择安装。Ubuntu 可使用源码安装的方式。下载相应版本的源码,然后按照安装指导完成安装。

源码安装

下面只介绍ubuntu下的安装。
安装依赖

1
2
apt-get install libreadline-dev libncurses5-dev libpcre3-dev \
libssl-dev perl make build-essential

解压源码包

1
tar -xzvf openresty-VERSION.tar.gz

VERSION 为下载的源码包的版本。
预编译
进入解压后的源码目录。

1
$ ./configure

默认openresty是安装在/usr/local/openresty目录,可以通过 –prefix 来修改。更多的预编译项可查看帮助。

1
./configure --help

编译及安装

1
2
$ make
$ sudo make install

Openresty 默认安装在/usr/local/openresty 目录下。

1
2
3
4
5
6
7
8
.
├── bin
├── luajit
├── lualib
├── nginx
├── pod
├── resty.index
└── site

bin 目录下有个openresty的指令,它是nginx/sbin/nginx 的符号链接,可用其启动openresty应用。

按照官方建议,对于自己的openresty应用,使用自己的应用目录,这样可以避免污染默认的openresty的安装树,并且允许多个不同openresty应用共享同一个Openresty服务程序。

docker 安装

docker 安装无疑是最干净快捷的安装方式了。

1
$ docker pull openresty/openresty

拉取镜像之后,启动即可开启默认的openresty应用。

1
docker run --name openresty -d -p 1226:80 openresty/openresty:trusty

官方有不同tag的镜像,例如tag 为trusty是基于ubuntu 14.04 打的镜像。可以根据自己熟悉的系统选择,具体清查看官方Dockerfle。当然我们常需要更改自己的配置,进入容器修改配置文件的方式,自然是不可取。可以选择基于官方的openresty镜像,构建自己的openresty应用。
下一篇,将介绍搭建一个简单的openresty应用。