1. 程式人生 > 實用技巧 >Nginx與Lua開發

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