
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Apache 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 \ docker.xuanyuan.run/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 http://127.0.0.1:9080/
shellHello APISIX
如需更多配置示例,可参考https://apisix.apache.org/docs/apisix/stand-alone%E3%80%82
方案一
APISIX运行也支持使用etcd作为配置中心。启动APISIX容器前,需先通过以下命令启动etcd容器,并指定容器使用主机网络。确保所有所需端口(默认:9080、9443和2379)可用且未被其他系统进程占用。
shelldocker run -d \ --name etcd \ --net host \ -e ALLOW_NONE_AUTHENTICATION=yes \ -e ETCD_ADVERTISE_CLIENT_URLS=http://127.0.0.1:2379 \ docker.xuanyuan.run/bitnami/etcd:latest
shelldocker run -d \ --name apache-apisix \ --net host \ docker.xuanyuan.run/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=http://127.0.0.1:2379 \ docker.xuanyuan.run/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: - "http://etcd:2379" 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 \ docker.xuanyuan.run/apache/apisix
测试示例
通过在主机上运行以下命令检查APISIX是否正常运行。
curl "http://127.0.0.1:9180/apisix/admin/services/" \ -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
更多信息可参考https://apisix.apache.org/%E5%92%8Chttps://apisix.apache.org/docs/apisix/getting-started%E3%80%82%E4%BD%BF%E7%94%A8%E4%B8%AD%E9%81%87%E5%88%B0%E9%97%AE%E9%A2%98%E5%8F%AF%E9%80%9A%E8%BF%87https://apisix.apache.org/docs/general/join/%E5%AF%BB%E6%B1%82%E5%B8%AE%E5%8A%A9%E3%80%82
若修改了自定义配置,可通过以下命令重新加载APISIX(无停机)。
docker exec -it apache-apisix apisix reload
此命令将在容器中执行apisix reload。
部署过程中,除上述操作外,APISIX还衍生了https://github.com/apache/apisix-ingress-controller%EF%BC%8C%E5%8F%AF%E5%9C%A8K8s%E7%8E%AF%E5%A2%83%E4%B8%AD%E6%9B%B4%E4%BE%BF%E6%8D%B7%E5%9C%B0%E9%83%A8%E7%BD%B2%E4%BD%BF%E7%94%A8%E3%80%82
基于Apache许可证2.0版本授权:http://www.apache.org/licenses/LICENSE-2.0
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 apache/apisix 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: