zoukankan      html  css  js  c++  java
  • Gravitee.io docker-compose运行

    Gravitee.io 是一个相对比较完整的api gateway 平台,包含了api 相对比较完整的生命周期管理
    同时在访问控制以及日志监控上也做的比较好,是一款可以尝试试用的api gateway 平台

    环境准备

    • docker-compose 文件
     
    version: '3'
    networks:
      default:
    services:
      nginx:
        image: nginx:1.15-alpine
        container_name: gio_platform_nginx
        restart: always
        volumes:
          - ./nginx/nginx.conf:/etc/nginx/nginx.conf
          - ./nginx/ssl/gio-selfsigned.crt:/etc/ssl/certs/gio-selfsigned.crt
          - ./nginx/ssl/gio-selfsigned.key:/etc/ssl/private/gio-selfsigned.key
          - ./nginx/ssl/gio.pem:/etc/ssl/certs/gio.pem
        ports:
          - "80:80"
          - "443:443"
        depends_on:
          - apim_gateway
          - apim_portal
          - apim_management
          - am_gateway
          - am_management
          - am_webui
      mongodb:
        image: mongo:3.4
        restart: always
        container_name: gio_platform_mongo
        ports:
          - 27017:27017
        environment:
          - MONGO_INITDB_DATABASE=gravitee
        volumes:
          - ./mongo/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
          - ./data/mongo:/data/db
          - ./logs/mongodb:/var/log/mongodb
      elasticsearch:
        image: elasticsearch:6.4.0
        container_name: gio_platform_elasticsearch
        restart: always
        ports:
          - 9200:9200
        environment:
          - http.host=0.0.0.0
          - transport.host=0.0.0.0
          - xpack.security.enabled=false
          - xpack.monitoring.enabled=false
          - cluster.name=elasticsearch
        ulimits:
          nofile: 65536
        volumes:
          - ./data/elasticsearch:/usr/share/elasticsearch/data
          - ./logs/elasticsearch:/var/log/elasticsearch
      apim_gateway:
        image: graviteeio/gateway:latest
        container_name: gio_platform_apim_gateway
        restart: always
        volumes: 
          - ./logs/apim-gateway:/opt/graviteeio-gateway/logs
        environment:
          - gravitee_management_mongodb_uri=mongodb://mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
          - gravitee_ratelimit_mongodb_uri=mongodb://mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
          - gravitee_reporters_elasticsearch_endpoints_0=http://elasticsearch:9200
        depends_on:
          - mongodb
          - elasticsearch
      apim_portal:
        image: graviteeio/management-ui:latest
        container_name: gio_platform_apim_portal
        restart: always
        environment:
          - MGMT_API_URL=https://localhost/apim/management/
        depends_on:
          - apim_management
      apim_management:
        image: graviteeio/management-api:latest
        container_name: gio_platform_apim_mgmt_api
        restart: always
        volumes:
          - ./logs/apim-management-api:/opt/graviteeio-management-api/logs
        environment:
          - gravitee_management_mongodb_uri=mongodb://mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
          - gravitee_ratelimit_mongodb_uri=mongodb://mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
          - gravitee_analytics_elasticsearch_endpoints_0=http://elasticsearch:9200
          - gravitee_jwt_cookiepath=/apim/management
          - gravitee_jwt_cookiesecure=true
        depends_on:
          - mongodb
          - elasticsearch
      am_gateway:
        image: graviteeio/am-gateway:2
        container_name: gio_platform_am_gateway
        restart: always
        volumes:
          - ./logs/am-gateway:/opt/graviteeio-am-gateway/logs
        environment:
          - gravitee_management_mongodb_uri=mongodb://mongodb:27017/gravitee-am?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
          - gravitee_oauth2_mongodb_uri=mongodb://mongodb:27017/gravitee-am?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
        depends_on:
          - mongodb
      am_management:
        image: graviteeio/am-management-api:2
        container_name: gio_platform_am_management
        restart: always
        volumes:
          - ./logs/am-management-api:/opt/graviteeio-am-management-api/logs
        environment:
          - gravitee_management_mongodb_uri=mongodb://mongodb:27017/gravitee-am?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
          - gravitee_oauth2_mongodb_uri=mongodb://mongodb:27017/gravitee-am?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
          - gravitee_jwt_cookiepath=/am/management
          - gravitee_jwt_cookiesecure=true
        depends_on:
          - mongodb
      am_webui:
        image: graviteeio/am-management-ui:2
        container_name: gio_platform_am_webui
        restart: always
        environment:
          - MGMT_API_URL=https://localhost/am/
          - MGMT_UI_URL=https://localhost/am/ui/
        volumes:
          - ./logs/am-webui:/var/log/nginx
        depends_on:
          - am_management
     
     
    • 简单说明
      docker compose 文件包含了api gateway 以及访问管理以及日志的基础组件,访问入口通过nginx,同时官方
      也提供了一个基于trafic 的demo,也挺不错
      nginx.conf 主要是proxy 的配置,同时添加了https 证书的处理(自签名的),nginx 配置文件处理了对于重定向
      的配置,好多配置对于我们来说还是有借鉴意义的。
      因为使用了mongo 所以在初始化数据库的时候进行了一些索引的创建,详细的配置可以参考github

    运行

    • 运行
     
    docker-compose up -d
     

    UI 效果 账户admin admin

    访问控制管理UI 账户 admin adminadmin

    试用

    • 创建api


    中间的一些步骤按照提示操作即可

    同时可以需要进行api 的发布以及启动,界面上还是很全的,直接参考提示操作即可

    • 使用api

    需要创建app

    然后需要创建api 的订阅,我们可以进行审核处理

    说明

    Gravitee.io 对于api 的管理功能比较全,后边会写一些关于如果使用的简单demo

    参考资料

    https://docs.gravitee.io/apim_quickstart_publish.html
    https://docs.gravitee.io/apim_quickstart_consume.html
    https://github.com/gravitee-io/gravitee-docker

  • 相关阅读:
    如何:为 Silverlight 客户端生成双工服务
    Microsoft Sync Framework 2.1 软件开发包 (SDK)
    Windows 下的安装phpMoAdmin
    asp.net安全检测工具 Padding Oracle 检测
    HTTP Basic Authentication for RESTFul Service
    Windows系统性能分析
    Windows Server AppFabric Management Pack for Operations Manager 2007
    Mongo Database 性能优化
    服务器未能识别 HTTP 标头 SOAPAction 的值
    TCP WAIT状态及其对繁忙的服务器的影响
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/10203435.html
Copyright © 2011-2022 走看看