• Docker-12:Docker安装Apisix


    1. 背景

    Docker

    APISIX

    Apisix 社区我关注了很久,大概从2020年的时候,我从 Apache 官网上了解到这个项目,那时候 Apisix 也孵化的差不多了,期间也在各种平台上做了很多推广。它给我最直观印象就是高性能网关,可以替代我们现在微服务网关/或者负载均衡的组件。

    关于网关,可以参看此前文章,[[如何选择和设计微服务网关]] 这里仅说明安装步骤,因为在某个演示项目技术选型用到 Apisix 所以在开发环境部署一套服务,为后续服务迁移做技术预研究。

    2. 环境准备

    Apisix 官网上也提供了一揽子安装命令: docker pull apache/apisix ,也安装过,但是为了了解 Apisix 一些结构和细节,选择了使用 docker-conpose 这种方式安装,顺带着将官方提供样例中的文件夹浏览一遍,做到心中有数。

    2.1. 容器环境

    • Docker
    • docker-compse

    以上环境自行准备,此处不做赘述。

    2.2. Clone项目

    样例

    目录名称描述用途
    apisix_conf配置文件路径配置apisix监听路径、后台默认账号及密码、ETCD
    apisix_log日志路径
    dashboard_conf可视化配置路径设置登陆账号以及密码、设置产生日志路径、设置可视化访问的端口、设置默认开启的插件
    etcd_confETCD配置路径配置成员、集群、代理、安全设置信息
    etcd_data数据存放路径
    mkcert相关证书存放路径
    upstreamnginx中Web服务的配置问存放路径
    docker-compose.ymlDocker-compose相关配置容器相关配置都放到此路径下

    2.3. 上传示例

    因为我在本地环境 Clone 的项目,所以要将 example 路径压缩上传到 Linux 服务器端。

    • 上传到服务器,解压 example 文件夹,我服务器演示路径为: /data/docker-compose/apisix ,以下只要未做特殊说明,操作路径皆为此。

    • 设置目录权限

    
    chmod -R 777 /data/docker-compose/apisix/
    
    
    • 1
    • 2
    • 3

    这一步比较简单,就略过。

    3. 修改配置文件

    如果独立安装 ETCD 的,在 Apisix 依赖于 ETCD 配置修改 apisix_confdashboard_conf 目录下 config.yaml ,修改连接 ETCD 地址,修改为 ETCD 所在 IP地址。 具体地址参看 [[Docker-11:Docekr安装Etcd]] 章节

    20220820232038

    
    etcd:
      host:                           
        - "http://192.168.147.128:2379"     
      prefix: "/apisix"               
      timeout: 30
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4. 启动

    下来启动容器,执行 docker-compose up ,如果想直接后台运行, 使用 docker-compose up -d

    
    docker-compose up
    
    
    • 1
    • 2
    • 3

    首次启动容器,等待时间有点久,需要构建所依赖的环境,耐心等待即可!

    图例1

    图例2

    5. 验证服务

    5.1. 查看容器状态

    
    docker-compose ps
    
    
    • 1
    • 2
    • 3

    20220820234222

    5.2. 访问可视化界面

    在浏览器打开地址 http://192.168.147.128:9000/ ,用户名密码在 dashboard_conf/conf.yaml 配置文件中,默认登录的用户名 adminuser ,密码与用户名相同。

  • 相关阅读:
    Python的安装与测试(windows为例)
    【电源专题】什么是充电芯片的Shipping Mode(船运模式)
    第2章 Linux多进程开发 2.18 内存映射
    Java项目:SSM企业工资管理系统
    基于Echarts实现可视化数据大屏大数据可视化
    Spring与MyBatis整合
    037-JTree控件使用讲解
    C++文件和流
    SpringBoot 学习(三)Web 开发
    【算法系列】非线性最小二乘-高斯牛顿法
  • 原文地址:https://blog.csdn.net/rothchil/article/details/126470014