11: Nginx安装lua支持
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支持的更多相关文章
- 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 ...
- nginx安装lua模块实现高并发
nginx安装lua扩展模块 1.下载安装LuaJIT-2.0.4.tar.gz wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz tar ...
- Nginx安装及支持https代理配置和禁用TSLv1.0、TSLv1.1配置
Linux安装Nginx Nginx安装及支持https代理配置和禁用TSLv1.0.TSLv1.1配置. 下载安装包 [root@localhost ~]# wget http://nginx.or ...
- nginx安装部署(支持https)
1 安装环境准备 1.1 准备环境清单 以下是基本环境清单列表: 软件名称 版本号 说明信息 Linux CentOS 6.7 部署机器只需为Linux系统即可,无严格要求 1.2 ...
- Let's Encrypt: 为CentOS/RHEL 7下的nginx安装https支持-具体案例
环境说明: centos 7 nginx 1.10.2 前期准备 软件安装 yum install -y epel-release yum install -y certbot 创建目录及链接 方法1 ...
- nginx 安装第三方模块(lua)并热升级
需求: nginx上将特定请求拒绝,并返回特定值. 解决办法: 使用lua脚本,实现效果. 操作步骤: 安装Luajit环境 重新编译nginx(目标机器上nginx -V 配置一致,并新增两个模块n ...
- Nginx安装以及配置
安装编译工具及库文件 1 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 安装 PCRE 下载 PC ...
- 给lnmp一键包中的nginx安装openresty的lua扩展
lnmp一键包(https://lnmp.org)本人在使用之后发现确实好用,能帮助我们快速搭建起lnmp.lamp和lnmpa的web生产环境,因此推荐大家可以多试试.但有的朋友可能需要使用open ...
- Nginx安装配置|Nginx反向代理|Nginx支持HTTPS|Nginx重定向
Nginx安装配置 可以直接看到最下面的HTTPS. Nginx安装 我的系统如下: No LSB modules are available. Distributor ID: Ubuntu Desc ...
随机推荐
- 从零开始一起学习SLAM | 三维空间刚体的旋转
刚体,顾名思义,是指本身不会在运动过程中产生形变的物体,如相机的运动就是刚体运动,运动过程中同一个向量的长度和夹角都不会发生变化.刚体变换也称为欧式变换. 视觉SLAM中使用的相机就是典型的刚体,相机 ...
- Cocos Creator iPhoneX适配的解决办法
研究了5个小时的iPhoneX适配. 从catalog,storyboard,safearea等一系列文章中发现.如果我们想完全撑满全屏.那直接建一个storyboard就好了.但撑满全屏后,流海就是 ...
- unity3d-游戏实战突出重围,第三天 绘制数字
实现效果: 准备资源 using UnityEngine; using System.Collections; public class hznum : MonoBehaviour { //存储图片资 ...
- 实验long raw 和 blob两种数据类型遇到dblink的表现
首先long raw从Oracle 10g开始就不再被建议使用,建议用blob代替.同理,long建议用clob代替. 本文从运维角度实验long raw 和 blob两种数据类型在遇到dblink时 ...
- PKCS#1
ASN.1 syntax,octet string是一个8 bytes sequence string. RSA中涉及到的Data conversion: 1)I2OSP,Integer to Oct ...
- Gardener Bo (树剖 + 问题分解)
一开始没看懂计算答案的第四部和update2,很迷.然后一直推敲之后才发下我计算的时候漏掉一个关键点.没有把加值的影响放到父节点上. #include<bits/stdc++.h> #de ...
- 【Redis学习之十一】Java客户端实现redis集群操作
客户端:jedis-2.7.2.jar 配置文件两种方式: properties: redis.cluster.nodes1=192.168.1.117 redis.cluster.port1=700 ...
- linux 命令杂集
[1]查找日志中某个字符串XXXX tail -f 日志文件名 | grep "XXXX" [2]linux抓包命令 tcpdump -i XXX -A ip xxx.xx ...
- 两眼论&矩阵变现理论结合打造赚钱大模式
两眼论&矩阵变现理论结合打造赚钱大模式 围棋有一个基本规则,就是一块棋有两只真眼,就是活棋. 围棋没有复杂的规则,它最有趣的地方是没有太多的规则和限制,由此演变出了大千世界,所以古人云“棋如人 ...
- Wi-Fi Mesh网络技术
Wi-Fi在很早的时候就引入了mesh技术,并且最近得到了越来越多的关注.谷歌.Eero.Linksys.Netgear以及几乎所有以家庭和小型办公室为目标的网络品牌都提供了mesh网格系统.但是也有 ...