Nginx與Lua開發
阿新 • • 發佈:2020-10-23
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