Apisix的启动流程核心是根据Apisix配置生成nginx.conf,接着运行openresty。初始化结束后,Apisix将会接管openresty的各种生命周期管理。具体包括如下阶段: init阶段初始化 nginx 配置,通过读取 Apisix conf/config.yaml ,解析配置生成 nginx config 文件。供 openresty下的nginx使用。 init_etcd建立etcd连接,初始化 etcd 中的...
当然,APISIX允许用户修改nginx.conf模板中的部分数据,具体方法是模仿conf/config-default.yaml的语法修改conf/config.yaml配置。其实现原理参见read_yaml_conf函数: 代码语言:javascript 复制 function_M.read_yaml_conf(apisix_home)local local_conf_path=profile:yaml_path("config-default")local default_conf_yaml,...
enable_debug: false enable_dev_mode: false # Sets nginx worker_processes to 1 if set to true enable_reuseport: true # Enable nginx SO_REUSEPORT switch if set to true. enable_ipv6: true config_center: etcd # etcd: use etcd to store the config value allow_admin: # Module ngx_http_a...
将插件代码保存为 limit-count-by-client,拷贝到apisix/plugins,然后在 config.yaml 插件位置启用,如下,包括 2 个配置: # 前面略...nginx_config:http:lua_shared_dicts:plugin-limit-count-by-client:10m# 插件的policy使用local模式的时候,需要用到共享内存# 内容略...plugins:-# 内容略..-limit-count-by-...
nginx_config: http: access_log_format: '{"remote_addr": "$remote_addr", "remote_user": "$remote_user", "time_local": "$time_local", "http_host": "$http_host", "request": "$request", "status": "$status", "body_bytes_sent": "$body_bytes_sent", "request_time": "$re...
其中,/apisix这个前缀可以在conf/config.yaml中修改,比如: 1 2 3 4 etcd: host: - "http://127.0.0.1:2379" prefix: /apisix # apisix configurations prefix 而upstreams/1就等价于nginx.conf中的http { upstream 1 {} }配置。类似关键字还有/apisix/services/、/apisix/routes/等,不一而足。
这一个方法是核心,在apisix的nginx.conf的配置文件中,有如下配置: init_worker_by_lua_block { apisix.http_init_worker() } 可见,该方法是在nginx启动的时候被执行的。 http_access_phase 在nginx.conf中有如下配置 access_by_lua_block { apisix.http_access_phase() } 跟插件有关的主要调用了 plugin.run...
nginx_config: http: access_log_format: '{"remote_addr": "$remote_addr", "remote_user": "$remote_user", "time_local": "$time_local", "http_host": "$http_host", "request": "$request", "status": "$status", "body_bytes_sent": "$body_bytes_sent", "request_time": "$request...
config.yaml: |- apisix: node_listen: 9080 # APISIX listening port enable_heartbeat: true enable_admin: true enable_admin_cors: true enable_debug: false enable_dev_mode: false # Sets nginx worker_processes to 1 if set to true enable_reuseport: true # Enable nginx SO_REUSEPORT switch if...