1 Star 0 Fork 3

harris/tl-ops-manage

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
tl_ops_manage.lua 3.98 KB
一键复制 编辑 原始数据 按行查看 历史
iamtsm 提交于 2022-08-18 17:43 . feat: 拆分页面转发插件
-- tl_ops_manage
-- en : core
-- zn : 核心流程
-- @author iamtsm
-- @email 1905333456@qq.com
-- module
local m_health = require("health.tl_ops_health")
local m_limit_fuse = require("limit.fuse.tl_ops_limit_fuse")
local m_balance_count = require("balance.count.tl_ops_balance_count")
local m_plugin = require("plugins.tl_ops_plugin"):new()
local m_waf = require("waf.tl_ops_waf")
local m_waf_count = require("waf.count.tl_ops_waf_count")
local m_api = require("api.tl_ops_api")
local m_balance = require("balance.tl_ops_balance")
local m_ctx = require("ctx.tl_ops_ctx");
local tlog = require("utils.tl_ops_utils_log"):new("tl_ops_manage");
local utils = require("utils.tl_ops_utils_func");
local env = require("tl_ops_manage_env")
local constant = require("constant.tl_ops_constant")
local cache = require("cache.tl_ops_cache")
local tlops_api = require("api.tl_ops_api_core")
local m_err_content = require("err.tl_ops_err_content")
local balance_shared = ngx.shared.tlopsbalance
local plugin_shared = ngx.shared.tlopsplugin
local waf_shared = ngx.shared.tlopswaf
local _M = {
env = env,
cache = cache,
utils = utils,
constant = constant,
plugins = {},
waf_shared = waf_shared,
plugin_shared = plugin_shared,
balance_shared = balance_shared,
}
-- init阶段执行
function _M:tl_ops_process_init()
-- 加载所有插件
m_plugin:tl_ops_process_load_plugins();
_M.plugins = m_plugin:tl_ops_process_get_plugins()
end
-- init_worker阶段执行
function _M:tl_ops_process_init_worker()
-- 执行插件
m_plugin:tl_ops_process_before_init_worker();
-- 启动健康检查
m_health:init();
-- 启动限流熔断
m_limit_fuse:init();
-- 启动路由统计
m_balance_count:init();
-- 启动WAF统计
m_waf_count:init();
-- 执行插件
m_plugin:tl_ops_process_after_init_worker();
end
-- ssl阶段执行
function _M:tl_ops_process_init_ssl()
-- 执行插件
m_plugin:tl_ops_process_before_init_ssl();
-- 执行插件
m_plugin:tl_ops_process_after_init_ssl();
end
-- rewrite阶段执行
function _M:tl_ops_process_init_rewrite(onlyplugin)
-- 初始化ctx
m_ctx:init();
-- 执行插件
m_plugin:tl_ops_process_before_init_rewrite(ngx.ctx);
if not onlyplugin then
-- 加载管理台API
m_api:init(ngx.ctx);
-- 启动全局WAF
m_waf:init_global(ngx.ctx);
-- 负载均衡筛选
m_balance:filter(ngx.ctx);
end
-- 执行插件
m_plugin:tl_ops_process_after_init_rewrite(ngx.ctx);
end
-- access阶段执行
function _M:tl_ops_process_init_access()
-- 执行插件
m_plugin:tl_ops_process_before_init_access(ngx.ctx);
-- 执行插件
m_plugin:tl_ops_process_after_init_access(ngx.ctx);
end
-- balance阶段执行
function _M:tl_ops_process_init_balancer()
-- 执行插件
m_plugin:tl_ops_process_before_init_balancer(ngx.ctx);
-- 负载均衡请求分发
m_balance:init(ngx.ctx);
-- 执行插件
m_plugin:tl_ops_process_after_init_balancer(ngx.ctx);
end
-- content阶段执行
function _M:tl_ops_process_init_content()
-- 自定义错误内容
m_err_content:init(ngx.ctx);
end
-- header阶段执行
function _M:tl_ops_process_init_header()
-- 执行插件
m_plugin:tl_ops_process_before_init_header(ngx.ctx);
-- 执行插件
m_plugin:tl_ops_process_after_init_header(ngx.ctx);
end
-- body阶段执行
function _M:tl_ops_process_init_body()
-- 执行插件
m_plugin:tl_ops_process_before_init_body(ngx.ctx);
-- 执行插件
m_plugin:tl_ops_process_after_init_body(ngx.ctx);
end
-- log阶段执行
function _M:tl_ops_process_init_log()
-- 执行插件
m_plugin:tl_ops_process_before_init_log(ngx.ctx);
-- 执行插件
m_plugin:tl_ops_process_after_init_log(ngx.ctx);
end
return _M
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Lua
1
https://gitee.com/harrishuang/tl-ops-manage.git
git@gitee.com:harrishuang/tl-ops-manage.git
harrishuang
tl-ops-manage
tl-ops-manage
main

搜索帮助