本文是利用上篇文章中介紹的兩個openresty的外掛程式來實現發版。
外掛程式如下:
lua-resty-upstream-healthcheck
lua-upstream-nginx-module
openresty 1.9.3.2以及之後的版本,都已經內建了這兩個外掛程式,所以直接使用就好。
nginx配置
location /upstreams
lua指令碼
end路徑
說明/upstreams
獲取所有的資訊
/upstreams/
根據名稱獲取資訊
/upstreams//
根據名稱和服務獲取
/upstreams///down
下線/upstreams///up
上線nginx配置
## 指定共享記憶體
lua_shared_dict healthcheck 1m;
lua_socket_log_errors off;
## 在worker初始化過程中,啟動定時器,進行後端結點的檢查
init_worker_by_lua_block ,
-- 併發度, 預設值為 1
concurrency = 1,
}if not ok then
ngx.log(ngx.err, "*****==> failed to spawn health checker: ", err)
return
end}#如果有多個,在這裡繼續寫
# 配置監控檢查訪問頁面(放到server下面)
location /server/status
}
nginx reload之後訪問/server/status就可以看到結果。
health_check() "
while true
dostatus_code=`/usr/bin/curl -l -o /dev/null --connect-timeout 5 -s -w % $`
if [ x$status_code != x200 ];then
sleep 1
((exptime++))
else
break
fiexit 1
fidone
echo "check $ success"
}
upstream_name=api
server_name=172.31.164.48:8081
online_offline_wait_time=6 # 例項上下線的等待時間
offline_url=/upstreams/$/$/down
online_url=/upstreams/$/$/up
online() $`
if [ x$status_code = x200 ];then
sleep $
else
exit 1
fi
}offline() $`
if [ x$status_code = x200 ];then
sleep $
else
exit 1
fi }
Openresty學習彙總
在錘子科技發布會上,提到給openresty的捐贈的事情,出於好奇我在是網上查詢了openresty,看到了openresty的官網 看到介紹說的很強大,然後開始了解國內外哪些公司在使用,也對openresty進行了學習,和做了一些demo 發現openresty開發效率確實很高,最後找到了一些資源...
openresty 二 使用lua開發
在openresty中使用lua開發 在 usr local openresty nginx conf nginx.conf,修改檔案配置,把下面的新增到要訪問的location中 default type text html content by lua ngx.say hello,world 新...
openresty使用筆記(一)
遊戲經過一段時間的運營,發現了原來的設計缺陷太多,所以決定重新設計架構。使用到nginx作為核心並通過lua redis設計實現自己的負載分配方案。先看看下面這張簡單的架構圖吧 從圖上看,結構是非常簡單的。主要通過編寫lua分配策略使遊戲房間內的人數盡量坐滿。要編寫lua外掛程式通常需求編譯ngin...