当前位置: 首页 > news >正文

Apache APISIX学习(1):介绍、docker启动

 一、介绍

        Apache APISIX 是一个动态、实时、高性能的 API 网关, 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、 A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。

        Apache APISIX 的技术架构如下图所示:

二、下载镜像

        使用docker pull apache/apisix:2.10.0-alpine命令下载apisix镜像。

        使用docker pull apache/apisix-dashboard:2.9.0获取apisix-dashboard镜像。

三、启动apisix

1、启动etcd

        因为apisix依赖etcd,所以要先保证etcd启动。etcd安装步骤请移步ETCD学习使用-CSDN博客这篇文章。使用命令ps -ef | grep etcd查看是否已经启动。

2、创建配置文件

        在宿主机本地创建apisix的配置文件config.yaml。下面的key修改为自己的,这个key是调用apisix的admin相关API需要传的,如果不改会有一个默认的在源码里写死的,如果你部署在公网上会导致被别人攻击,因为知道这个key就可以随意调用你的API操作apisix。

        内容如下: 

apisix:admin_key:-name: admin# 使用固定API令牌存在安全风险,请在部署到生产环境时进行更新      key: zZ2Trn0WFjk3k34hjsdaReplrVUekVz  role: admin
etcd:host:  # 可以为同一个etcd集群定义多个etcd主机地址。# 如果您的etcd集群启用TLS,请使用https方案。# 例如 https://127.0.0.1:2379.- "http://192.168.197.131:2379" prefix: /apisix  # Apisix配置前缀timeout: 300

3、启动apisix

        执行如下命令,启动容器:

docker run -d -p 9080:9080 -v /usr/local/apisix/conf/config.yaml:/usr/local/apisix/conf/config.yaml apache/apisix:2.10.0-alpine

        用浏览器访问http://服务器ip:9080/显示如下内容,表示启动成功。

4、启动apisix-dashboard

        在指定目录下创建配置文件conf.yaml

        内容如下:

conf:listen:host: 0.0.0.0         # Manager API应该监听的地址。# 默认值为0.0.0.0,如果需要指定,请启用。# 该值接受IPv4、IPv6和主机名port: 9000            # '管理器API '应该监听的端口。allow_list:             # 如果我们不设置任何IP列表,则默认情况下允许任何IP访问。etcd:endpoints:            # 支持为etcd定义多个etcd主机地址cluster- 192.168.197.131:2379# username: "root"  #如果没开启授权,可以注掉# password: "123456" #如果没开启授权,可以注掉
authentication:secret:zQ5w5jkLDh3jZpywJ3sskrw6Yv633ruqexpire_time: 3600     # JWT令牌过期时间,单位为秒users:                # Yamllint启用规则:comments-缩进- username: adminpassword: password- username: userpassword: password

        使用如下命令启动,我这里9000端口被占用了,所以转成了9111端口。

docker run -d -p 9111:9000 -v /usr/local/apisix-dashboard/conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml apache/apisix-dashboard:2.9.0

        也可以使用docker-compose启动,docker-compose.yml配置文件如下: 

version: '3'
services:apisix-dashboard:restart: alwaysimage: apache/apisix-dashboard:2.9.0container_name: apisix-dashboardports:- "9111:9000"volumes:- /usr/local/apisix-dashboard/conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml- /usr/local/apisix-dashboard/logs/:/usr/local/apisix-dashboard/logs

        在浏览器输入服务器ip:9111进入登录界面:

        使用配置文件中admin/password即可登录成功。

相关文章:

  • docker - 迁移和备份
  • DasViewer浏览器中的格式转换,与网格大师的转换有什么区别?
  • 如何将 Apifox 的自动化测试与 Jenkins 集成?
  • iOS开发工程师面试
  • 使用 Llama 3.1 和 Qdrant 构建多语言医疗保健聊天机器人的步骤
  • 【Hadoop】一、Hadoop入门:基础配置、集群配置、常用脚本
  • 爬虫逆向学习(九):记录一个集cookie、请求参数、请求体、响应文本加密的站点反爬
  • Cpp内存管理(7)
  • 海信智能电视的使用心得
  • Elasticsearch 启动后在浏览器输入http://localhost:9200 访问失败
  • 企微SOP:构建标准化运营流程,驱动企业高效增长
  • 【JavaEE初阶】深入解析死锁的产生和避免以及内存不可见问题
  • PHP 函数
  • BeautifulSoup4在爬虫中的使用
  • Oracle DB运维常用的视图及数据字典
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • JAVA并发编程--1.基础概念
  • java多线程
  • leetcode386. Lexicographical Numbers
  • Redis的resp协议
  • 彻底搞懂浏览器Event-loop
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 大数据与云计算学习:数据分析(二)
  • 番外篇1:在Windows环境下安装JDK
  • 官方解决所有 npm 全局安装权限问题
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 听说你叫Java(二)–Servlet请求
  • 我与Jetbrains的这些年
  • Semaphore
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (编译到47%失败)to be deleted
  • (二十六)Java 数据结构
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)ssm码农论坛 毕业设计 231126
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (四)opengl函数加载和错误处理
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net 简单实现MD5
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net实现客户区延伸至至非客户区
  • .Net小白的大学四年,内含面经
  • ::前边啥也没有
  • @TableLogic注解说明,以及对增删改查的影响
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • @我的前任是个极品 微博分析
  • [2010-8-30]
  • [20190113]四校联考
  • [C++][ProtoBuf][初识ProtoBuf]详细讲解
  • [C++]C++类基本语法