Nginx での Sentinel のダッシュボード アドレスやアプリケーション名などのパラメーターの構成は、OpenResty および Lua スクリプトを通じて実現できます。具体的な手順は次のとおりです。
OpenRestyをインストールします。OpenResty をインストールするには、公式ドキュメントを参照してください。
Nginx設定ファイルにLuaスクリプトを導入します。例えば:
http {
lua_package_path "/path/to/lua/?.lua;;";
lua_shared_dict sentinel 1m;
init_worker_by_lua_block {
local redis = require "resty.redis"
local sentinel = require "resty.sentinel"
sentinel.init({dashboard_addr = "http://localhost:8080", app = "my-app"})
ngx.timer.every(5, function() sentinel.update_rules() end)
}
}
ここでは、lua_package_pathにLuaスクリプトのパスを追加し、共有メモリ領域のsentinelを定義し、init_worker_by_lua_blockでSentinelを初期化し、ダッシュボードのアドレスやアプリケーション名などのパラメータを設定しています。同時に、Sentinel ルールを 5 秒ごとに更新するタイマーが定義されます。
スロットリングや機能低下の制御が必要なインターフェイスでは、Lua スクリプトを使用します。例えば:
location /api {
access_by_lua_block {
local sentinel = require "resty.sentinel"
if sentinel.pass("my-api", ngx.var.remote_addr) then
return
else
ngx.exit(503)
end
}
}
ここでは、Lua スクリプトを使用して、フロー制限制御のために Sentinel のインターフェイスを呼び出します。インターフェイスがフロー制限ルールを通過した場合、リクエストは解放され、そうでない場合は、503 エラー コードが返されます。
つまり、Nginx で Sentinel のダッシュボード アドレスやアプリケーション名などのパラメーターを構成することは、OpenResty および Lua スクリプトを通じて実現でき、Lua スクリプトと組み合わせて、電流制限または劣化制御が必要なインターフェイスで電流制限および劣化制御を実装できます。