1.1 Nginx 使用lua脚本

  注:需要LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module

  1、Nginx安装lua支持

      wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz

      tar xzvf LuaJIT-2.0.4.tar.gz

      cd LuaJIT-2.0.4

      make install PREFIX=/usr/local/luajit

      # 注意环境变量!

      export LUAJIT_LIB=/usr/local/luajit/lib

      export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0

  2、下载解压ngx_devel_kit

      wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz

      tar -xzvf v0.3.0.tar.gz

  3、下载解压lua-nginx-module

      wget https://github.com/openresty/lua-nginx-module/archive/v0.10.8.tar.gz

      tar -xzvf v0.10.8.tar.gz

  4、下载安装nginx-1.10.3.tar.gz

      wget http://nginx.org/download/nginx-1.10.3.tar.gz

      tar -xzvf nginx-1.10.3.tar.gz

      cd nginx-1.10.3

      ./configure --add-module=/opt/soft/ngx_devel_kit-0.3.0 --add-module=/opt/soft/lua-nginx-module-0.10.8

      # 注1:ngx_devel_kit和lua-nginx-module以实际解压路径为准

      make -j2

      make install

      # 注2:报错gcc需要安装,可以执行

      yum install -y gcc g++ gcc-c++

      依赖报错,可以执行

      yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel

  5、启动nginx

      ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

     /usr/local/nginx/sbin/nginx   # 启动nginx

      /usr/local/nginx/sbin/nginx -s stop     # 关闭nginx

      注:创建nginx启动脚本: /etc/init.d/nginx

#!/bin/bash
#chkconfig: 2345 89 89
#Description:This is Nginx web script"
PID="/usr/local/nginx/logs/nginx.pid"
start(){
/usr/local/nginx/sbin/nginx
if [ $? -eq 0 ];then
echo -en "Starting Nginx...\t\t\t["
echo -en "\033[32;34mOK\033[0m"
echo "]"
else
echo "Starting Nginx Error"
fi
}
stop(){
/usr/local/nginx/sbin/nginx -s stop
if [ $? -eq 0 ];then
echo -en "Stop Nginx...\t\t\t["
echo -en "\033[32;34mOK\033[0m"
echo "]"
else
echo "Stop Nginx Error"
fi
}
status(){
if [ -f $PID ];then
ID=$(cat $PID)
echo "Ngix($ID) is running..."
else
echo "Nginx is stop"
fi
}
case $1 in
start)
start;;
stop)
stop;;
restart)
stop
start
;;
status)
status;;
*)
echo "Usage:$0 {start|stop|restart|status}"
esac

/etc/init.d/nginx

  6、验证

      vim /usr/local/nginx/conf/nginx.conf   # 配置nginx.conf

      #test.lua文件内容

      ngx.say("hello world");

#1、lua指令方式
#在server 中添加一个localtion
location /hello {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
} #2、lua文件方式
#在server 中添加一个localtion
location /lua {
default_type 'text/html';
content_by_lua_file conf/lua/test.lua; #相对于nginx安装目录
}

nginx.conf

      [root@redis nginx]# curl http://127.0.0.1/hello
      hello, lua
      [root@redis nginx]# curl http://127.0.0.1/lua
      hello world

1.2 nginx 配置lua脚本

  1、lua配置get请求

         location /api/test {
# access_log logs/access_api.log main;
set $cmd "python /home/work/opbin/test.py $arg_username $arg_fullname $arg_email $arg_phone 2>&1";
content_by_lua '
ngx.header.content_type = "text/plain";
local cmd = ngx.var.cmd;
local exec = io.popen(cmd);
local log = exec:read("*all");
exec:close();
ngx.print(log);
';
}

nginx.conf 配置lua接收get请求

#1、在浏览器中访问
http://1.1.1.3/api/test?username=jack4&fullname=JACK4&email=jack4@yiducloud.cn&phone=18765452444 #2、返回结果
["/home/work/opbin/test.py", "jack4", "JACK4", "jack4@yiducloud.cn", ""]

测试lua接收get请求

local secondfile = io.popen("ifconfig")
if nil == secondfile then
print("open file for ipconfig fail")
end print("\n======commond ipconfig result:") local content = secondfile:read("*a")
print(content) secondfile:close() # lua test.lua

test.lua 执行系统命令

  2、lua配置post请求

1111111111111111111111

11: Nginx安装lua支持的更多相关文章

  1. Nginx安装lua支持

    Nginx安装lua支持 需要LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module 1.下载安装LuaJIT-2.0.4.tar.gz wget -c ...

  2. nginx安装lua模块实现高并发

    nginx安装lua扩展模块 1.下载安装LuaJIT-2.0.4.tar.gz wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz tar ...

  3. Nginx安装及支持https代理配置和禁用TSLv1.0、TSLv1.1配置

    Linux安装Nginx Nginx安装及支持https代理配置和禁用TSLv1.0.TSLv1.1配置. 下载安装包 [root@localhost ~]# wget http://nginx.or ...

  4. nginx安装部署(支持https)

    1      安装环境准备 1.1   准备环境清单 以下是基本环境清单列表: 软件名称 版本号 说明信息 Linux CentOS 6.7 部署机器只需为Linux系统即可,无严格要求 1.2   ...

  5. Let's Encrypt: 为CentOS/RHEL 7下的nginx安装https支持-具体案例

    环境说明: centos 7 nginx 1.10.2 前期准备 软件安装 yum install -y epel-release yum install -y certbot 创建目录及链接 方法1 ...

  6. nginx 安装第三方模块(lua)并热升级

    需求: nginx上将特定请求拒绝,并返回特定值. 解决办法: 使用lua脚本,实现效果. 操作步骤: 安装Luajit环境 重新编译nginx(目标机器上nginx -V 配置一致,并新增两个模块n ...

  7. Nginx安装以及配置

    安装编译工具及库文件 1 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 安装 PCRE 下载 PC ...

  8. 给lnmp一键包中的nginx安装openresty的lua扩展

    lnmp一键包(https://lnmp.org)本人在使用之后发现确实好用,能帮助我们快速搭建起lnmp.lamp和lnmpa的web生产环境,因此推荐大家可以多试试.但有的朋友可能需要使用open ...

  9. Nginx安装配置|Nginx反向代理|Nginx支持HTTPS|Nginx重定向

    Nginx安装配置 可以直接看到最下面的HTTPS. Nginx安装 我的系统如下: No LSB modules are available. Distributor ID: Ubuntu Desc ...

随机推荐

  1. 函数 return

    return 的作用 一.返回一个值给函数,主函数调用这个函数后能得到这个返回的值.二.结束函数,例如你运行到一个地方,虽然后面还有代码但是你不想再继续运行,这时就可以直接用 return:这条语句来 ...

  2. iOS UI基础-13.0 数据存储

    应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Lay ...

  3. Jmeter安装与配置

    Jmeter下载与安装配置 1.下载地址:https://jmeter.apache.org/ Apache Jmeter首页,点击 Download Releases  然后,选择,安装版本,有li ...

  4. ubuntu 安装/卸载nginx及常用命令

    安装命令 sudo apt-get update #更新apt sudo apt-get install nginx #安装nginx 启动/重启/停止命令 一. /etc/init.d/nginx ...

  5. .NET 黑魔法 - asp.net core 身份认证 - Policy

    身份认证几乎是每个项目都要集成的功能,在面向接口(Microservice)的系统中,我们需要有跨平台,多终端支持等特性的认证机制,基于token的认证方式无疑是最好的方案.今天我们就来介绍下在.Ne ...

  6. Docker 在转发端口时的这个错误Error starting userland proxy: mkdir /port/tcp:0.0.0.0:3306:tcp:172.17.0.2:3306: input/output error.

    from:https://www.v2ex.com/amp/t/463719 系统环境是 Windows 10 Pro,Docker 版本 18.03.1-ce,电脑开机之后第一次运行 docker ...

  7. oracle 修改表结构,增加列,删除列等

    增加一列:ALTER TABLE yourTabbleName ADD columnName dataType; 增加多列:ALTER TABLE yourTabbleName ADD (column ...

  8. html5-特殊符号的使用

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  9. 概念、DW介绍

    网页设计知识点大致分为五个部分,分别是: 1.概念.DW介绍: 2.标签: 3.样式表CSS: 4.JQuery: 5.JavaScript 概念.DW介绍: 一.网页的基本结构 <!--文档声 ...

  10. 即时通信系统中实现全局系统通知,并与Web后台集成【附C#开源即时通讯系统(支持广域网)——QQ高仿版IM最新源码】

    像QQ这样的即时通信软件,时不时就会从桌面的右下角弹出一个小窗口,或是显示一个广告.或是一个新闻.或是一个公告等.在这里,我们将其统称为“全局系统通知”.很多使用C#开源即时通讯系统——GGTalk的 ...