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 lua 设置请求头 openresty lua脚本_vim

 

openresty lua 设置请求头 openresty lua脚本_openresty lua 设置请求头_02

 

openresty lua 设置请求头 openresty lua脚本_vim_03

 

安装OpenResty

我使用的 官方预编译包 安装的,如果离线的安装的话,可以参照官方安装文档即可。

添加 openresty 仓库

 

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

openresty lua 设置请求头 openresty lua脚本_vim_04

 

安装软件包

 

sudo yum install -y openresty

openresty lua 设置请求头 openresty lua脚本_vim_05

 

安装命令行工具

 

sudo yum install -y openresty-resty

openresty lua 设置请求头 openresty lua脚本_vim_06

 

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

openresty lua 设置请求头 openresty lua脚本_vim_07

 

LUA脚本开发 Hello World

引入开发包

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

openresty lua 设置请求头 openresty lua脚本_nginx_08

 

我们打开 nginx.conf 文件

 

vim /usr/local/openresty/nginx/conf/nginx.conf

然后 引入 所需要的两个开发包

openresty lua 设置请求头 openresty lua脚本_openresty lua 设置请求头_09

 

保存退出。

开发LUA脚本 输出Hello World

这里我就按照我的个人喜欢创建文件夹以及对应的文件,大家如果感兴趣,可以自己创建类似一个项目的文件目录。

  1. /usr/local/openresty/nginx下 创建名为 lua的目录
mkdir /usr/local/openresty/nginx/lua
  1. 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;  
    }
}

openresty lua 设置请求头 openresty lua脚本_openresty lua 设置请求头_10

 

  1. lua目录下创建hello.lua脚本
vi hello.lua

将一下内容输入进入

ngx.say("hello world");

openresty lua 设置请求头 openresty lua脚本_nginx_11

 

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

openresty lua 设置请求头 openresty lua脚本_openresty lua 设置请求头_12

 

保存退出。

检验以及运行测试

使用以下命令检验

 

/usr/local/openresty/nginx/sbin/nginx -t

openresty lua 设置请求头 openresty lua脚本_openresty lua 设置请求头_13

 

启动nginx

 

/usr/local/openresty/nginx/sbin/nginx

在浏览器输入当前服务 http://当前服务器IP/lua

openresty lua 设置请求头 openresty lua脚本_lua_14

 

部署成功并且脚本运行成功