Nginx与Lua开发
lua及基础语法
Nginx与lua环境
场景:用Nginx结合lua实现代码的灰度发布
一、lua
lua是一个简洁、清凉、可扩展的脚本语言
1、nginx+lua的优势
充分的结合Nginx的并发处理epoll优势和Lua的轻量实现简单的功能切高并发的场景
2、Lua的基础语法
安装
yum install lua
变量:
布尔类型只有nil和false是false 数字0啊," 空字符串(' \0')都是true
lua中的变量如果没有特殊说明,全身是全局变量
while循环语法
sum=0 num=1 while num<=100 do sum = sum+num num = num+1 end print("sum=",sum)
lua没有++或是+=这样的操作
if-else判断语句
if age == 40 and sex == "Male" then print("大于40男人") elseif age >60 and sex ~="Female" then print("非女人而且大于60") else local age = io.read() print("Your age is" ..age) end
~= 是不等于 字符串的拼接操作符 ".."
io库的分别从stdin 和 stdout读写的read 和weite函数
Nginx +Lua环境的安装
1、LuaJIT
2、ngx_devel_kit 和lua-nginx-module
3、重新编译Nginx
环境安装: http://www.imooc.com/article/19597
1、Nginx的课插拔模块化加载执行,共11个处理阶段
set_by_lua set_by_lua_file |
设置nginx变量,可以实现复杂的赋值逻辑 |
access_by_lua access_by_lua_file |
请求你访问阶段处理,用于访问控制 |
content_by_lua content_by_lua_file |
内容处理器,接受其你去处理并输出响应 |
Nginx Lua API
ngx.var | nginx变量 |
ngx.req.get_headers | 获取请求头 |
ngx.req.get_uri_args | 获取URL请求参数 |
ngx.rediret | 重定向 |
ngx.print | 输出响应内容体 |
ngx.say | 通ngx.print,但是会最后输出一个换行符 |
ngx.header | 输出响应头 |
实战场景-灰度发布
1、用户的信息cookie等信息区别
灰度发布实战配置:https://blog.csdn.net/dyllove98/article/details/9673825