api网关--apisix问题收集

1、apisix配置中etcd支持证书访问吗?类似k8s

etcd 的证书是需要双向认证的,所以暂不支持

2、在使用apisix源码运行的时候,在/root/*目录下运行会提示resty.worker.events找不到,换成其他目录就正常了?

因为nginx 默认的 nobody 用户没有 /root 这个目录的读权限

3、ssl_phase的时候,rpm1.5的版本只是一个warn   tag中的加了exit(-1),https的流量挂了?

使用默认证书,是不安全的,所以 1.5 中 fix 了这个 bug。

4、配置kafka插件后,kafka日志输出有多个upstream?

kafka-log插件的配置设置atch_max_size为1,就不会有这个问题了。

5、不要手工修改 APISIX 自身的 conf/nginx.conf 文件,当服务每次启动时,apisix 会根据 conf/config.yaml 配置自动生成新的 conf/nginx.conf 并自动启动服务。要修改配置信息只能修改config.yaml,如果直接修改conf/nginx.conf,apisix重启后会根据config.yaml自动重新生成conf/nginx.conf覆盖修改的conf/nginx.conf。

6、部署插件需要注意权限,权限一定要644,否则apisix在加载插件会失败。

7、apisix dashboard无法正常获取routers和upstream的配置信息,原因是虚拟机重装apisix安装的主机发生变化,需要更改js中baseURL中的主机ip。

8 nginx默认多进程单线程,插件内起定时器,多个进程会起各自的定时器.目前除了进程正常退出之外未发现能退出定时器协程.实际应使用lua shared dict(nginx共享内存),仅在第一个工作进程起定时器,定时器获取的数据存储到nginx共享内存供多个进程共享.

9 公司apisix插件目前是创建router和upstream,router里面一般会增加2个插件proxy_rewrite和自定义插件(业务层面)

### APISix Limit-Count 插件配置与使用 #### 配置说明 为了在 API 网关中实现请求速率控制,APISix 提供了 `limit-count` 插件来限制客户端访问频率。此插件允许管理员设置每秒最大请求数以及时间窗口内的总请求数。 对于版本 3.4.0 的 APISix,在启用该插件之前需创建对应的目录结构[^1]: ```bash mkdir apisix-${APISIX_VERSION} ``` 接着定义路由并应用限流策略。下面是一个典型的 JSON 格式的配置实例,用于指定特定路径下的流量限制规则: ```json { "plugins": { "limit-count": { "count": 5, "time_window": 60, "rejected_code": 503, "key_type": "remote_addr" } }, "upstream": { ... } } ``` 上述配置表示在同一分钟内来自同一 IP 地址的最大请求数不得超过五次;超过限额后的响应状态码设为 HTTP 503 Service Unavailable;而 `key_type` 参数决定了如何区分不同的用户或服务调用者,这里选择了基于远端地址(`remote_addr`)的方式进行识别。 此外需要注意的是,当多个插件同时运行时可能会造成系统资源竞争现象。为了避免这种情况发生,可以通过调整收集抖动(collection jitter)参数使得各个插件不会在同一时刻执行密集型操作,从而减轻对系统的瞬时压力[^2]。 #### 使用示例 假设已经安装好最新版的 APISix 并启动成功,则可通过命令行工具或者 RESTful API 来管理这些插件。例如要向某个已存在的路由添加限流功能可以发送如下 PUT 请求给 Admin API: ```http PUT /apisix/admin/routes/1 Host: localhost:9080 X-API-KEY: your_api_key_here { "uri": "/test/*", "plugins": { "limit-count": { "count": 10, "time_window": 60, "rejected_code": 503, "key_type": "consumer" } }, "upstream": { "type": "roundrobin", "nodes": [ {"host":"backend-service", "port":80, "weight":1} ] } } ``` 这段代码片段展示了如何针对 `/test/*` 路径设定每分钟最多十次请求次数,并且依据消费者身份 (`consumer`) 进行计数统计。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值