九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
nginx lua 實現(xiàn)ip和cookies緯度的AB-Test灰度發(fā)布

背景說明

ab-test請參考百度百科的解釋,對互聯(lián)網(wǎng)從業(yè)者來說,這個非常熟悉。我最近在一個項目里折騰lua,順便實現(xiàn)了常用的兩種灰度方案。

安裝與配置

安裝

我們不把時間浪費在安裝編譯,這里直接使用已經(jīng)將nginx,lua組合在一起的openresty,安裝過程請參考官方Install指南。

配置

為了方便策略選擇和切換,我們把2個緯度的配置分別放在不同的文件里,具體使用哪個策略,在域名的主配置中啟用即可。

  • ip_gray.lua
     --添加ip后無需重啟nginx,但刪除ip需要reload生效 local ip_config = ngx.shared.config; ClienIP=ngx.req.get_headers()["X-Real-IP"] if ClientIP == nil then     ClientIP = ngx.req.get_headers()["x_forworded_for"] end if ClientIP == nil then     ClientIP = ngx.var.remote_addr end-- ip列表配置放在nginx/conf目錄下 for line in io.lines("../conf/iplist.txt") do     if not ip_config:get(line) then          ip_config:set(line, "0")     end end if ip_config:get(ClientIP) == "0" then     ngx.exec("@gray_env") else     ngx.exec("@product_env") end
  • cookies_gray.lua
    local uin = ngx.var.cookie_loginuin--取cookies里的loginuin字段,末尾被2整數(shù)的灰度if uin ~= nil and string.sub(uin,string.len(uin))%2 == 0 then  ngx.exec("@gray_env")else  ngx.exec("@product_env")end
  • nginx.conf
      ...  #http  lua_code_cache off; #正式上線記得打開cache  lua_package_path "/usr/local/openresty/lualib/?.lua;;";  lua_shared_dict config 1m;  ...  #server  location / {     #access_by_lua_file  conf/lua/ip_gray.lua;     access_by_lua_file  conf/lua/cookies_gray.lua;  }  location @gray_env {      proxy_pass http://gray_env;      proxy_set_header Host $http_host;  }  location @product_env {      proxy_pass http://product_env;      proxy_set_header Host $http_host;  }

總結(jié)

  1. nginx打開debug日志,方便查看錯誤提示和調(diào)試信息
  2. lua語法不熟練時,首先翻閱官方文檔,google搜索其次。因為google到的資料很可能是過期的,而且很多是沒驗證過的轉(zhuǎn)帖。
  3. 合理使用共享內(nèi)存
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Nginx KV db進(jìn)行AB灰度測試
nginx+lua,在我司實踐過超有用的3個案例
openresty 簡介
實現(xiàn)一個簡單的服務(wù)端推方案 | 火丁筆記
通過nginx配置文件抵御攻擊,防御CC攻擊的經(jīng)典思路! | moon's blog
應(yīng)對小規(guī)模DDOS:使用nginx_lua打造PHP應(yīng)用防火墻
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服