一、
--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. 标签中的onclick调用js方法传递多个参数的解决方案

    1.JS方法 <script type="text/javascript"> funcation cc(parameter1,parameter2,parameter3 ...

  2. Linux系统中用户组、文件权限浅解

    用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在Linux中每个文件有所有者.所在组.其它组的概念. [所有者] 一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用& ...

  3. SpringBoot系列: 使用 flyway 管理数据库版本

      Flyway 和 Liquibase 都是 Java 项目中常用的 DB migration 工具, 从使用简便性看,Flyway 比 Liquibase 更简单, 从 github 的 star ...

  4. 二叉树的python可视化和常用操作代码

    二叉树是一个重要的数据结构, 本文基于"二叉查找树"的python可视化 pybst 包, 做了一些改造, 可以支持更一般的"二叉树"可视化. 关于二叉树和二叉 ...

  5. springboot(二十):数据库连接池介绍

    概述 性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 .hikariCP的高性能得益于最大限度的避免锁竞争. druid功能最为全面,sql ...

  6. ios 不支持-,-时间。

    var date = "2000-08-29";  console.log(new Date(date).getTime());解决办法 date .replace(/-/g, ' ...

  7. Lua 函数链功能

    函数链 http://lua-users.org/wiki/FiltersSourcesAndSinks A chain is a function that combines the effect ...

  8. Docker 空间大小设置 - 十

    一.容器启动 默认存储大小: 1.一种在启动项 docker.service 中配置. 2.在启动项配置调用的 docker-storage 配置文件中配置: 二.Docker 容器默认启动文件: / ...

  9. 第26月第2天 vim javacomplete

    1. 将解压出来的autoload 和 doc的内容添加到~/.vim/下的相应目录下,如果~/.vim下没有这两个文件夹就手动创建其中autoload里的有javacomplete.vim java ...

  10. android 内存回收及怎样避免内存泄露

    http://blog.vunso.com/201307/android%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E6%9C%BA%E5%88%B6%E5%8F%8A% ...