Nginx+Lua(OpenResty)搭建以及成果测试(2)!

承接上一节内容,我们继续。。。

三、Nginx配置、Lua的编写、成果测试

1、配置nginx

vim  /usr/local/openresty/nginx/conf/nginx.conf   #nginx配置文件路径
#nginx.conf 配置如下
worker_processes  2;                 #指定工作进程个数
events {
       worker_connections 150000;    #设置连接上限
       }   
http {
       default_type  application/octet-stream;  #设置二进制流类型
       sendfile        on;                      #开始高效文件传输
       gzip  on;                                #开启压缩功能,节省宽带
       server 
        {
              listen       80;                  #监听端口号
              server_name  localhost;           #域名

              location /luatest {               #若请求该字段,运行如下lua脚本
                  content_by_lua_file /usr/local/openresty/lualib/test/test.lua; #这一条很重要。。。。
              }       
          }
  }   

2、编写Lua脚本

——这里要注意的一点就是,所有命令都要加sudo,否则会提示权限不够。

#首先在lualib下建立test/test.lua,用于测试
cd /usr/local/openresty/lualib
mkdir test
cd test
touch test.lua 
sudo chmod 777 test.lua
# test.lua 编写如下
   local args=nil
   local request_method = ngx.var.request_method  #获取前端传递的参数
   if"GET" == request_method then                 #判断是否为 GET 请求
           args = ngx.req.get_uri_args()          #获取args参数
           ngx.say("this is get")
           ngx.say("user = "..args["user"])       #打印获取到的用户名
           ngx.say("id = "..args["id"])           #打印获取到的id

  elseif "POST" == request_method then            #判断是否为 POST 请求
          ngx.say("this is post") 
          --ngx.req.read_body()           #本次我们用header传递,不涉及此函数。
         
          args = ngx.req.get_post_args()          #获取参数
          ngx.say("name = "..args["name"])        #打印获取到的姓名
          ngx.say("age = "..args["age"])            #打印获取到的年龄
  end

  ngx.say("Test End!")

3、成果测试

——每当修改配置文件之后,都需要重启nginx,命令如下:

# 平滑重启 O(∩_∩)O
cd /usr/local/openresty/nginx/sbin
sudo ./nginx -s reload       

#这里没有添加环境变量,如果设置了环境变量,就可以随时随地 nginx 了         

——GET测试

# 执行curl 模拟 GET 请求,注意格式!
curl http://localhost/luatest?"user=me&id=123"
# GET请求 响应
This is GET
user = me
id = 123
Test End

——POST测试

# 执行curl 模拟 POST 请求,注意格式!
curl http://localhost/luatest -d "name=dog&age=20"
# POST请求 响应
This is POST
name = dog
age = 20
Test End

4、总结 

——梳理一下整个过程:首先用curl 命令模拟http请求访问nginx(curl http://localhost/luatest?"user=me&id=123"),nginx通过nginx.conf配置文件中的字段( location /luatest)与http请求匹配,接着执行提前编写好的Lua脚本,本文中Lua脚本的作用也就是解析http请求传递过来的参数(user/id),大概过程就是如此。

以上记录了一次完整的测试过程,因为细节太多,难免有不足的地方,欢迎大家指出。

下一次将测试POET请求中,body信息的解析,拭目以待吧。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值