Openresty學習使用(三)發版指令碼

2021-09-24 05:53:44 字數 4335 閱讀 1425

本文是利用上篇文章中介紹的兩個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...