Apache APISIX是一款动态、实时、高性能的云原生API网关,提供负载均衡、动态上游、金丝雀发布、熔断、认证、可观测性等丰富流量管理功能,适用于处理传统南北向流量及服务间东西向流量。
收藏数: 102
下载次数: 29946670
类型:
apache/apisixApache APISIX是一个动态、实时、高性能的API网关。
APISIX API网关提供丰富的流量管理功能,如负载均衡、动态上游、金丝雀发布、熔断、认证、可观测性等。
您可以使用APISIX API网关处理传统南北向流量,以及服务间的东西向流量。目前,APISIX已被 NASA、腾讯云、欧盟数字工厂、空客、空中云汇、爱奇艺等多个行业的企业所采用。
Apache APISIX支持单机模式,也支持使用etcd数据库作为配置中心。
在单机模式下,APISIX使用apisix.yaml作为配置中心,存储路由、上游、消费者等信息。APISIX启动后,会定期加载apisix.yaml文件以更新相应配置信息。
您可以通过以下命令启动一个单机模式的APISIX容器:
shelldocker run -d --name apache-apisix \ -p 9080:9080 \ -e APISIX_STAND_ALONE=true \ apache/apisix
向运行中的APISIX容器添加路由和插件配置:
shelldocker exec -i apache-apisix sh -c 'cat > /usr/local/apisix/conf/apisix.yaml <<_EOC_ routes: - id: httpbin uri: /* upstream: nodes: "httpbin.org": 1 type: roundrobin plugin_config_id: 1 plugin_configs: - id: 1 plugins: response-rewrite: body: "Hello APISIX\n" desc: "response-rewrite" #END _EOC_'
测试示例:
shellcurl [***]
shellHello APISIX
如需更多配置示例,可参考单机模式文档。
APISIX运行也支持使用etcd作为配置中心。启动APISIX容器前,需先通过以下命令启动etcd容器,并指定容器使用主机网络。确保所有所需端口(默认:9080、9443和2379)可用且未被其他系统进程占用。
shelldocker run -d \ --name etcd \ --net host \ -e ALLOW_NONE_AUTHENTICATION=yes \ -e ETCD_ADVERTISE_CLIENT_URLS=[***] \ bitnami/etcd:latest
shelldocker run -d \ --name apache-apisix \ --net host \ apache/apisix
启动APISIX容器前,需先创建Docker虚拟网络并启动etcd容器。
shelldocker network create apisix-network --driver bridge && \ docker network inspect -v apisix-network && \ docker run -d --name etcd \ --network apisix-network \ -p 2379:2379 \ -p 2380:2380 \ -e ALLOW_NONE_AUTHENTICATION=yes \ -e ETCD_ADVERTISE_CLIENT_URLS=[***] \ bitnami/etcd:latest
subnet地址。在当前目录创建APISIX配置文件。需将allow_admin设置为步骤1中获取的subnet地址。shellcat << EOF > $(pwd)/config.yaml deployment: role: traditional role_traditional: config_provider: etcd admin: allow_admin: - 0.0.0.0/0 # 请设置为您获取到的子网地址。 # 若未设置,默认允许所有IP访问。 etcd: host: - "[***]" prefix: "/apisix" timeout: 30 EOF
shelldocker run -d --name apache-apisix \ --network apisix-network \ -p 9080:9080 \ -p 9180:9180 \ -v $(pwd)/config.yaml:/usr/local/apisix/conf/config.yaml \ apache/apisix
通过在主机上运行以下命令检查APISIX是否正常运行。
curl "[***]" \ -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1'
响应表明apisix运行成功:
json{ "total": 0, "list": [] }
如需修改APISIX默认配置,可通过以下命令进入APISIX容器并修改配置文件./conf/config.yaml,重新加载APISIX后生效。详情请参考./conf/config-default.yaml。
docker exec -it apache-apisix bash
更多信息可参考APISIX官网和APISIX文档。使用中遇到问题可通过slack和邮件列表寻求帮助。
若修改了自定义配置,可通过以下命令重新加载APISIX(无停机)。
docker exec -it apache-apisix apisix reload
此命令将在容器中执行apisix reload。
部署过程中,除上述操作外,APISIX还衍生了apisix-ingress-controller,可在K8s环境中更便捷地部署使用。
基于Apache许可证2.0版本授权:[***]
以下是 apache/apisix 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务