OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。可以自己写LUA脚本实现大部分的WEB功能。
Nginx不依赖第三库的默认功能包括
- 反向代理
- 负载均衡
- HTTP服务器
- 正向代理
我们可以看到,其默认的功能很强大,但是我们也会偶尔有特殊的需求,需要根据需求来定制一些路由规则等等,因此就用到了OpenResty,这里我准备使用OpenResty 开发一个分发脚本,这个后续再说,今天先介绍OpenResty的安装以及通过LUA脚本简单的实现一个 hello world 的打印。
搭建OpenResty
其实 官网安装 上的搭建文档写的很清楚,我们照着一步一步操作就可以了。我使用的系统环境 centOS7,如果使用Ubuntu 等其他系统,可以参照 官网安装。
安装前的准备
安装 perl 5.6.1+, libpcre, libssl。
yum install pcre-devel openssl-devel gcc curl



安装OpenResty
我使用的 官方预编译包 安装的,如果离线的安装的话,可以参照官方安装文档即可。
添加 openresty
仓库
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

安装软件包
sudo yum install -y openresty

安装命令行工具
sudo yum install -y openresty-resty

安装完成后,我们可以在目录 /usr/local
下 看到安装好的 OpenResty。

LUA脚本开发 Hello World
引入开发包
首先Lua 脚本开发需要引入包,这些包放在了 /usr/local/openresty
下。

我们打开 nginx.conf 文件
vim /usr/local/openresty/nginx/conf/nginx.conf
然后 引入 所需要的两个开发包

保存退出。
开发LUA脚本 输出Hello World
这里我就按照我的个人喜欢创建文件夹以及对应的文件,大家如果感兴趣,可以自己创建类似一个项目的文件目录。
-
在
/usr/local/openresty/nginx
下 创建名为lua
的目录mkdir /usr/local/openresty/nginx/lua
-
在
lua
目录下创建lua.conf
文件vim lua.conf
将以下内容输入进去
server { listen 80; server_name _; location /lua { default_type 'text/html'; content_by_lua_file /usr/local/openresty/nginx/lua/hello.lua; } }

-
在
lua
目录下创建hello.lua
脚本vi hello.lua
将一下内容输入进入
ngx.say("hello world");

-
引入nginx配置文件
nginx.conf
vim /usr/local/openresty/nginx/conf/nginx.conf

保存退出。
检验以及运行测试
使用以下命令检验
/usr/local/openresty/nginx/sbin/nginx -t

启动nginx
/usr/local/openresty/nginx/sbin/nginx
在浏览器输入当前服务 http://当前服务器IP/lua

部署成功并且脚本运行成功
小结
LUA脚本语法以及NGINX相关模块配置,都需要自己去百度了解,毕竟我是JAVA开发,不能完全彻底的掌握,希望有错误的地方大家保函,共同进步。
网友评论