在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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 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安装目录 } [root@redis nginx]# curl http://127.0.0.1/hello 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); '; } #1、在浏览器中访问 http://1.1.1.3/api/test?username=jack4&fullname=JACK4&[email protected]&phone=18765452444 #2、返回结果 ["/home/work/opbin/test.py", "jack4", "JACK4", "[email protected]", "18765452444"] 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 2、lua配置post请求
1111111111111111111111 |
请发表评论