一、
--cat /opt/nginx/conf/conf.d
lua_package_path '/opt/nginx/conf/lua/?.lua;;'; --lua模块路径,其中”;;”表示默认搜索路径
lua_package_cpath '/opt/nginx/conf/lua/?.so;;'; --c模块

init_by_lua_file '/opt/nginx/conf/lua/init_by_lua.lua'; --nginx Master进程加载配置时执行;通常用于初始化全局配置/预加载Lua模块
init_worker_by_lua_file '/opt/nginx/conf/lua/init_worker_by_lua.lua'; -- 每个Nginx Worker进程启动时调用的计时器,如果Master进程不允许则只会在init_by_lua之后调用;通常用于定时拉取配置/数据,或者后端服务的健康检查
log_by_lua_file '/opt/nginx/conf/lua/log_by_lua.lua'; --log阶段处理,比如记录访问量/统计平均响应时间
access_by_lua_file '/opt/nginx/conf/lua/access_by_lua.lua'; --请求访问阶段处理,用于访问控制

# 缓存配置
# 所有可信IP, 包括:腾讯/阿里服务节点, 金色家园各个机房IP段及办公网IP段; 数据在Nginx初始化时倒入
lua_shared_dict eleme_trusted_iplib 10M; #共享全局变量,在所有worker间共享
lua_shared_dict eleme_whitelist_iplib 1M; # 仅金色家园各个机房IP段及办公网IP段

# ngx_waf
lua_shared_dict ngx_waf_locks 3M; # waf locks
lua_shared_dict ngx_waf_counter 500M; # counter data
lua_shared_dict ngx_waf_counter_exptime 500M; # counter exptime
lua_shared_dict ngx_waf_defense_crawler_blacklist 10M; # blacklist

# 配置相关
lua_shared_dict ngx_admin_config 1M; # ngx_admin_config配置
--[[#参考链接
http://wiki.jikexueyuan.com/project/nginx-lua/lua.html #首页 Wiki 服务器 Nginx 跟我学 Nginx+Lua 开发
http://jinnianshilongnian.iteye.com/blog/2186448
http://jinnianshilongnian.iteye.com/category/333854 #第二章 OpenResty(Nginx+Lua)开发入门->跟我学Nginx+Lua开发(开涛)
]]
二、
(1)socket模块安装

wget http://w3.impa.br/~diego/software/luasocket/old/luasocket-2.0.3-rc1.zip
mv luasocket-2.0.3 /usr/local/include/
cd /usr/local/include/
cp luajit-2.0/l* luasocket-2.0.3/src/
make
make install
lua
> require("socket")
>
cp src/socket.lua /opt/nginx/conf/lua/
(2)第二种方式,luarocks(类似yum)
yum -y install luarocks.x86_64
luajit -llyaml
>local lyaml = require "lyaml"

>print(package.searchpath('lyaml', package.path)) --I can get the path to the file like this:
/usr/local/share/lua/5.1/lyaml/init.lua

package.path='./?.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua;/usr/lib64/lua/5.1/?.lua;/usr/lib64/lua/5.1/?/init.lua;/opt/nginx/conf/lua/?.lua;;'

print(package.path)

<1>安装依赖
yum install gcc gcc-c++ kernel-devel
yum install readline-dev
yum install ncurses-devel.i386
<2>安装lua
cd /usr/local/ && wget http://www.lua.org/ftp/lua-5.1.5.tar.gz
tar zxvf lua-5.1.5.tar.gz
cd lua-5.1.5
vi Makefile
INSTALL_TOP= /usr/local/lua-5.1.5
make linux
make install
<3>安装luarocks
cd /usr/local/include/ && wget https://luarocks.org/releases/luarocks-2.4.3.tar.gz
tar zxpf luarocks-2.4.3.tar.gz
cd luarocks-2.4.3
./configure --prefix=/usr/local/luarocks-2.4.3 --with-lua=/usr/local/lua-5.1.5
make build
make install
<4>配置环境变量
export PATH=$PATH:/usr/local/luarocks-2.4.3/bin:/usr/local/lua-5.1.5/bin:/usr/local/lua-5.1.5/bin
export LUA_PATH="/usr/local/include/luarocks-2.4.3/share/lua/5.1/?.lua;/usr/local/include/luarocks-2.4.3/share/lua/5.1/lyaml/?.lua;/opt/nginx/conf/lua/?.lua;;" #等同于nginx配置中的lua_package_path
export LUA_CPATH="/opt/nginx/modules/?.so;;/usr/local/include/luarocks-2.4.3/lib/luarocks/rocks;/usr/local/include/luarocks-2.4.3/lib/luarocks" #等同于nginx配置中的lua_package_cpath
<5>luarocks常用命令
# luarocks list
luasocket
3.0rc1-2 (installed) - /usr/local/include/luarocks-2.4.3/lib/luarocks/rocks
lyaml
6.1.3-1 (installed) - /usr/local/include/luarocks-2.4.3/lib/luarocks/rocks
# luarocks path
export LUA_PATH='/root/.luarocks/share/lua/5.1/?.lua;/root/.luarocks/share/lua/5.1/?/init.lua;/usr/local/luarocks-2.4.3/share/lua/5.1/?.lua;/usr/local/luarocks-2.4.3/share/lua/5.1/?/init.lua;./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua'
export LUA_CPATH='/root/.luarocks/lib/lua/5.1/?.so;/usr/local/luarocks-2.4.3/lib/lua/5.1/?.so;./?.so;/usr/local/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/loadall.so'

参考:https://luarocks.org/#quick-start
http://uncle-code.iteye.com/blog/2257970
三、按照项目的salt安装

/opt/luarocks/bin/luarocks install luasocket 2.0.2-6
/usr/local/bin/luajit -e "require('socket')"
/opt/luarocks/bin/luarocks install lyaml 6.1.1-4
/usr/local/bin/luajit -e "require('lyaml')"
/opt/luarocks/bin/luarocks install lua-resty-iputils
/usr/local/bin/luajit -e "require('resty.iputils')"

cd /opt && ln -s luarocks-2.4.1 luarocks
四、生产部署只需要看这些就ok了。

cd /tmp/waimai_lua

eoc upload /tmp/waimai_lua/xg1-waimai-openapi-proxy-1-lua.tar.gz /opt/nginx/conf/lua -h wg-stargate-web-3
eoc create -h wg-stargate-web-3 --script 'cd /opt/nginx/conf/lua/ && tar -xf xg1-waimai-openapi-proxy-1-lua.tar.gz' -y

eoc upload /tmp/waimai_lua/xg1-waimai-openapi-proxy-1-luajit-2.1.tar.gz /usr/local/include/ -h wg-stargate-web-3
eoc create -h wg-stargate-web-3 --script 'cd /usr/local/include/ && tar -xf xg1-waimai-openapi-proxy-1-luajit-2.1.tar.gz' -y

eoc upload /tmp/waimai_lua/xg1-waimai-openapi-proxy-1-luarocks-2.4.1.tar.gz /opt -h wg-stargate-web-3
eoc create -h wg-stargate-web-3 --script 'cd /opt && tar -xf xg1-waimai-openapi-proxy-1-luarocks-2.4.1.tar.gz' -y

eoc upload /tmp/waimai_lua/ngx_func_lua.conf /opt/nginx/conf/conf.d -h wg-stargate-web-3

eoc upload /tmp/waimai_lua/xg1-waimai-openapi-proxy-1-ngx_http_lua_upstream_module.so /opt/tengine-2.1.2/modules -h wg-stargate-web-3
eoc upload /tmp/waimai_lua/xg1-waimai-openapi-proxy-1-yaml.so /usr/local/lib/lua/5.1/ -h wg-stargate-web-3
cd /usr/local/lib/lua/5.1 && mv xg1-waimai-openapi-proxy-1-yaml.so yaml.so && chmod a+x yaml.so

025_lua脚本语言的更多相关文章

  1. InstallShield 脚本语言学习笔记

    InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加.     一.基本语法规则      ...

  2. JS脚本语言是什么意思?

    javascript,Javascript是一种浏览器端的脚本语言,用来在网页客户端处理与用户的交互,以及实现页面特效.比如提交表单前先验证数据合法性,减少服务器错误和压力.根据客户操作,给出一些提升 ...

  3. 使用Lua脚本语言开发出高扩展性的系统,AgileEAS.NET SOA中间件Lua脚本引擎介绍

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  4. .NET 动态脚本语言Script.NET 入门指南 Quick Start

    Script.NET是一种动态的脚本语言,它使得程序可扩展,可定制,和维护性好.和Office系列的VB Script相似,可以在应用中嵌入大量的代码块,以便在运行时才执行这些代码. Script.N ...

  5. 使用expect脚本语言写一键发布服务(代码发布、所有服务重启)

    互联网服务有很多台服务,但是在上线的时候需要将这些服务版本都更新与个个都重启,下面的脚本语言,就是一键发布服务~ 1.在/home/weihu/deploy/ 目录下建下publish .publis ...

  6. C#最良心脚本语言C#Light/Evil,Xamarin\WP8\Unity热更新最良心方案,再次进化.

    C#Light的定位是嵌入式脚本语言,一段C#Light脚本是一个函数 C#Evil定位为书写项目的脚本语言,多脚本文件合作,可以完全用脚本承载项目. C#Light/Evil 使用完全C#一致性语法 ...

  7. [Java面试九]脚本语言知识总结.

    核心内容概述 1.JavaScript加强,涉及到ECMAScript语法.BOM对象.DOM对象以及事件. 2.Ajax传统编程. 3.jQuery框架,九种选择器为核心学习内容 4.JQuery ...

  8. Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针

    Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针   1.1. java方法引用(Method References) 与c#委托与脚本语言js ...

  9. JS的脚本语言

    js的脚本语言全程javascript在网页里面使用的脚本语言:分类:1.嵌入网页里面2.在外部脚本标签可以写在网页的任何地方,但一般都写在网页的底部:<script type="te ...

随机推荐

  1. PHP索引数组+unset使用不当导致的问题

    转自先知社区 https://xz.aliyun.com/t/2443 0x00前言 通常网站后台可以配置允许上传附件的文件类型,一般登录后台,添加php类型即可上传php文件getshell.但是, ...

  2. @GetMapping(value="/") , "/" 可加可不加 ,是不是一样的

    @GetMapping(value = "/user") 和  @GetMapping(value = "user") 的区别 1.带上 "/&quo ...

  3. Postman 安装及使用入门教程 (谷歌浏览器插件版)

    postman 在 谷歌浏览器中插件版 http://www.cnblogs.com/mafly/p/postman.html Postman 4.1.2 下载地址: http://files.cnb ...

  4. 六.HashMap HashTable HashSet区别剖析总结

    HashMap.HashSet.HashTable之间的区别是Java程序员的一个常见面试题目,在此仅以此博客记录,并深入源代码进行分析: 在分析之前,先将其区别列于下面: 1.HashSet底层采用 ...

  5. IDEA 远程调试 Tomcat 和 Debugger

    一般来说我们本地环境使用Tomcat,生产环境使用GlassFish. 准备工作 明确远程服务器的 IP 地址,比如:192.168.92.128 关掉服务器防火墙:service iptables ...

  6. Python之线程 2 - Python实现线程

    一 python与线程 1.全局解释器锁GIL(用一下threading模块之后再来看~~) 2.python线程模块的选择 二 Threading模块 1.线程创建 2.多线程与多进程 3.多线程实 ...

  7. gcc -O0 -O1 -O2 -O3 四级优化选项及每级分别做什么优化

    参考链接 : http://blog.csdn.net/qq_31108501/article/details/51842166 gcc -D选项的作用,声明宏 参考链接:  http://blog. ...

  8. 《jQuery精品教程视频》-每天的复习笔记

    第一天 //jquery:简单.粗暴 //jq和js的关系 //js是什么? js是一门编程语言 //jq仅仅是基于js的一个库,jq可理解为就是开发js的一个工具. //概念 //1. 为什么要学j ...

  9. BootStrap表单验证用户名重复

    html: <div class="form-group"> <label for="username" class="contro ...

  10. 20165237 2017-2018-2 《Java程序设计》第4周学习总结

    20165237 2017-2018-2 <Java程序设计>第4周学习总结 教材学习内容总结 1.子类只能有一个父类,父类可以有多个子类. 2.子类继承父类的成员变量和方法. 3.开闭原 ...