ApiSix启动流程源码分析
2022-09-30 16:23:11 0 举报
解读了ApiSix的源码,绘制了其启动流程
作者其他创作
大纲/内容
获取openresty版本,校验是否满足版本要求
将单个的etcd配置转成集群的配置
执行openresty 启动命令 openresty -p /usr/local/apisix -c /conf/nginx.conf
读取etcd相关配置
start里要完成的事
初始化etcd
三个都会重试
判断启动命令中是否指定config路径,如果没有使用默认路径
判断apisix是否已经在运行
根据配置生成一份系统基本配置信息sys_conf
ApiSix启动成功
检查control 和 prometheus 配置
检查stream_proxy四层代理配置
确定每个etcd节点的版本是否符合要求
根据配置的etcd的用户名和密码进行认证,并获取到一个token
检查admin token是否合法
调用file.read_yaml_conf读取配置文件
make run 调用 ./bin/apisix start
执行ops.lua中的start方法
检查http组件与nginx module
分别读取conf下的config.ymal和config-default.ymal文件里的配置项,最后做一个merge返回,config.yml里的配置优先级高
检查node_listen_port 与 ssl_listen_port设置
init里要完成的事
创建日志目录
调用ops.lua的init程序初始化方法
一句话总结apisix的启动过程就是根据各种配置生成一份nginx配置,调用openresty用这个配置启动一个nginx
根据sys_conf和ngx_tpl.lua生成最终nginx.conf
检查nssl参数设置
根据配置文件检查一些配置是否正确
往etcd中put数据,测试是否正常
判断是否是在root目录下
根据配置中的host信息,调用host + \"/version\"接口,并且每个接口执行2次重试,若失败或版本太旧(< 3.4.0)则直接退出
0 条评论
回复 删除
下一页