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 ...
随机推荐
- JS--理解call、apply和bind
call.apply和bind call,apply是Function原型中的方法,它们的作用一样,区别在于传入参数的方式不同. call(thisArg, arg1, arg2...) 传入的参数不 ...
- GCC 用户态&内核态 Makefile
转了一圈,今天再次回到C 网上一篇博文,个人感觉良心作品,故而拿来重新实现一遍,原作者原文有问题,我这里把他打通了 一.GCC Makefile //hello.c #include <stdi ...
- iOSOpenDev安装使用
下载:http://iosopendev.com/download/ 选择“iOSOpenDev 1.6-2 Installer” 出错解决方法 https://www.jianshu.com/p/2 ...
- Asp.net Core认证和授权:Cookie认证
关于asp.net core 的文章,博客园已经有很多大牛写过了. 这里我只是记录下自己在学习中的点滴和一些不懂的地方 Cookie一般是用户网站授权,当用户访问需要授权(authorization) ...
- SQLAllocHandle
函数定义: 顾名思义,该函数就是用来分配句柄的,句柄类型参考参数详解. SQLRETURN SQLAllocHandle( SQLSMALLINT HandleType, SQLHANDLE ...
- hdu5294 网络流+dijskstr
题意:给你n个墓室,m条路径,一个人在1号墓室(起点),另一个人在n号墓室(终点),起点的那个人只有通过最短路径才能追上终点的那个人,而终点的那个人能切断任意路径. 第一问——终点那人要使起点那人不能 ...
- Mysql Federated For Windows
[1]windows环境下打开federated (1)关闭.命令:mysql> net stop mysql (2)添加federated字段.在my.ini文件中添加一个字段,注意位于[my ...
- QNetworkAccessManager
[1]头文件 想要利用QNetworkAccessManager类,必须在pro文件中添加对应库network,如下: QT += network 如果利用的VS + QT开发环境,请参考随笔< ...
- 网易新网 spider
# -*- coding: utf-8 -*- import os import sys import urllib.request import requests import re from lx ...
- java设计模式之动态代理的概述和实现
概述 1.代理:本来应该自己做的事情,请了别人来做,被请的人就是代理对象. 举例:春节回家买票让人代买 2.在Java中java.lang.reflect包下提供了一个Proxy类和一个Invocat ...