介绍

OpenResty 是一个基于 NginxLua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关

OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。

OpenResty 的目标是让你的 Web 服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。”

快速上手

安装

安装前的准备

您必须将这些库 perl 5.6.1+, libpcre, libssl安装在您的电脑之中。 对于 Linux来说, 您需要确认使用 ldconfig 命令,让其在您的系统环境路径中能找到它们。

  1. yum安装
1
yum install readline-devel pcre-devel openssl-devel
  1. 源码安装
1
2
3
4
5
6
7
wget https://openresty.org/download/ngx_openresty-1.9.7.1.tar.gz   # 下载
tar xzvf ngx_openresty-1.9.7.1.tar.gz # 解压
cd ngx_openresty-1.9.7.1/
./configure
make
make install

  1. dockerhub 拉取
1
docker pull openresty/openresty

目录结构

安装 OpenResty 成功后的目录结构如下(以默认安装目录为例):

1
2
3
4
5
6
7
/usr/local/openresty/                          #安装主目录
├── bin #存放可执行文件
├── luajit #LuaJIT运行库
├── lualib #Lua组件
├── Nginx #Nginx核心运行平台
├── pod #参考手册(restydoc)使用的数据
└── site #包管理工具(opm)使用的数据

Client 工具

如果你想安装命令行工具 resty,那么可以像下面这样安装 openresty-resty 包:

1
sudo yum install -y openresty-resty

OpenResty 的操作命令跟 Nginx 保持一致。可以使用 -e 参数可以在命令行里直接执行 Lua 代码,我们可以在命令行执行如下命令,

1
2
[root@VM-4-5-centos ~]# resty -e "print('hello world')"
hello OpenResty

hello world

conf/nginx.conf其中包含以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
worker_processes  1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
location / {
default_type text/html;
content_by_lua_block {
ngx.say("<p>hello, world</p>")
}
}
}
}