zoukankan      html  css  js  c++  java
  • Kong的安装

    一、Kong的安装:

    1、二进制方式安装:

    1. 创建Kong运行目录:

      mkdir kong                        # 创建Kong目录
      mkdir kong/data                   # 创建Kong运行数据目录
      
    2. 下载Kong安装包:

      cd kong                                                            # 切换到Kong目录
      wget https://github.com/Kong/kong/archive/refs/tags/2.4.0.tar.gz   # 下载Kong安装包
      
    3. 解压Kong安装包:

      tar -zvxf 2.4.0.tar.gz            # 解压Kong安装包
      
    4. 编辑kong.conf配置文件:

      cp kong.conf.default kong.conf    # 拷贝一份Kong配置文件
      vim kong.conf
      # 1、使用PostgreSQL数据库
      database = postgres               # postgres、cassandra、off
      pg_host = 127.0.0.1
      pg_port = 5432
      pg_user = kong
      pg_password = kong
      # 2、使用Cassandra数据库
      database = cassandra
      cassandra_contact_points = 127.0.0.1
      cassandra_port = 9042
      cassandra_keyspace = kong
      cassandra_username = kong
      cassandra_password = kong
      # 3、不使用数据库,基于内存存储数据
      database = off
      # 定位到NGINX
      # 1、
      proxy_listen = 0.0.0.0:80, 0.0.0.0:443 ssl            # 为了方便使用,将8080调整为80,将8443调整为443
      admin_listen = 0.0.0.0:8001, 127.0.0.1:8444 ssl       # 管理ip调整为0.0.0.0是方便外部访问
      :wq!                                                  # 保存并退出
      
    5. 初始化Kong数据库(前提是使用PostgreSQL):

      ./kong migrations bootstrap         # Kong版本 >= 0.15
      ./kong migrations up                # Kong版本 <  0.15
      
    6. 启动Kong

      ./kong start 
      ./kong start -vv                    # -vv: 表示可以看到详细的启动过程日志信息 
      
    7. 停止Kong

      ./kong stop                         # 直接停止正在运行的Kong 
      ./kong quit -t 10                   # 优雅地关闭关闭正在运行的Kong,-t 10 表示等待10秒后关闭
      
    8. 将Kong注册成服务:

      vim kong.service
      [Unit]
      Description=dashboard system
      After=NetworkManager.service
       
      [Service]
      Type=forking
      ExecStart=/usr/local/dev/kong/start # 启动服务的命令或者脚本的绝对路径
      ExecStop=/usr/local/dev/kong/stop   # 停止服务的命令或者脚本的绝对路径
      PrivateTmp=true
       
      [Install]
      WantedBy=multi-user.target
      :wq!                                # 保存并退出
      chmod u+x kong.service              # 赋予文件可执行权限
      cp kong.service //usr/lib/systemd/system/       
      
    9. 通过systemd的方式管理Kong

      sysyemctl start kong                # 启动Kong服务
      systemctl stop kong                 # 停止Kong服务
      systemctl enable kong               # 设置Kong服务开机自启动
      systemctl disable kong              # 设置Kong服务停止开机自启动
      systemctl restart kong              # 重新启动Kong服务
      systemctl status kong               # 查看Kong服务的当前状态
      

    2、Docker容器化方式安装:

    1、编写docker-compose.yml

    • Kong基于PostgreSQL存储:

      version: '3'
      services:
        kong-database:
          image: postgres:9.6                              #  PostgreSQL数据库镜像
          container_name: kong-database      
          ports:
            - "5432:5432"
          environment:
            - POSTGRES_USER=kong                          # PostgreSQL数据库用户名
            - POSTGRES_DB=kong                            # PostgreSQL数据库名          
            - POSTGRES_PASSWORD=kong                      # PostgreSQL数据库密码
          volumes:
            - "/usr/local/dev/kong/data:/var/lib/postgresql/data"
      
        kong-migrations:
          image: kong:latest                               # Kong的镜像
          container_name: kong-migrations
          environment:
            - KONG_DATABASE=postgres                       # 定义Kong使用的数据库类型
            - KONG_PG_HOST=kong-database                   # 定义PostgreSQL数据库的主机名
            - KONG_PG_USER=kong                            # 定义PostgreSQL数据库的用户名
            - KONG_PG_PASSWORD=kong                        # 定义PostgreSQL数据库密码
          command: kong migrations bootstrap               # Kong数据库初始化脚本
          restart: on-failure
          depends_on:
            - kong-database
      
        kong:
          image: kong:latest                               # Kong的镜像
          container_name: kong
          environment:
            - KONG_DATABASE=postgres                       # 定义Kong使用的数据库类型
            - KONG_PG_HOST=kong-database                   # 定义PostgreSQL数据库的主机名
            - KONG_PG_USER=kong                            # 定义PostgreSQL数据库的用户名
            - KONG_PG_PASSWORD=kong                        # 定义PostgreSQL数据库密码
            - KONG_PROXY_ACCESS_LOG=/dev/stdout
            - KONG_ADMIN_ACCESS_LOG=/dev/stdout
            - KONG_PROXY_ERROR_LOG=/dev/stderr
            - KONG_ADMIN_ERROR_LOG=/dev/stderr
            - KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
          restart: on-failure
          ports:
            - "8000:8000"                                 # Kong的代理端口
            - "8443:8443"                                 # Kong的管理端口
            - "8001:8001"                                 # Kong SSL的代理端口
            - "8444:8444"                                 # Kong SSL的管理端口
          links:
            - kong-database:kong-database
          depends_on:
            - kong-migrations
      
        konga:
          image: pantsel/konga:0.14.9                   # Konga的镜像
          ports:
            - "1337:1337"                               # Konga的端口
          container_name: konga
          environment:
            - NODE_ENV=production                       # production development 
          links:
            - kong:kong
      
    • Kong基于Cassandra存储:

      version: "3.3"
      services:
        kong-database:
          image: cassandra:3
          ports:
            - "9042:9042"
          volumes:
            - /usr/local/dev/kong/data:/var/lib/cassandra
      
        kong:
          image: kong:latest 
          container_name: kong
          environment:
            - KONG_DATABASE=cassandra 
            - KONG_CASSANDRA_CONTACT_POINTS=kong-database
            - KONG_PROXY_ACCESS_LOG=/dev/stdout
            - KONG_ADMIN_ACCESS_LOG=/dev/stdout
            - KONG_PROXY_ERROR_LOG=/dev/stderr
            - KONG_ADMIN_ERROR_LOG=/dev/stderr
            - KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
          restart: on-failure
          ports:
            - "8000:8000" 
            - "8443:8443"
            - "8001:8001"
            - "8444:8444"
          links:
            - kong-database:kong-database
      
        konga:
          image: pantsel/konga:0.14.9
          ports:
            - "1337:1337"
          links:
            - kong:kong
          container_name: konga
          environment:
            - NODE_ENV=production
      
    • Kong基于DB-less存储:

      version: "3.3"
      services:
        kong:
          image: kong:latest
          container_name: kong
          environment:
            - KONG_DATABASE=off
            - KONG_PROXY_ACCESS_LOG=/dev/stdout
            - KONG_ADMIN_ACCESS_LOG=/dev/stdout
            - KONG_PROXY_ERROR_LOG=/dev/stderr
            - KONG_ADMIN_ERROR_LOG=/dev/stderr
            - KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
          restart: on-failure
          ports:
            - "8000:8000"
            - "8443:8443"
            - "8001:8001"
            - "8444:8444"
      
        konga:
          image: pantsel/konga:0.14.9
          ports:
            - "1337:1337"
          links:
            - kong:kong
          container_name: konga
          environment:
            - NODE_ENV=production
      

    2、通过docker-compose命令管理kong

    1. 通过docker-compose命令启动容器:

      docker-compose up -d
      
    2. 通过docker-compose命令停止容器:

      docker-compose stop
      
    3. 通过docker-compose命令查看容器状态:

      docker-compose ps
      
    4. 通过docker-compose移除容器及网络:

      docker-compose down
      
  • 相关阅读:
    读取Excel还用POI?试试这款开源工具
    Maven optional 关键字透彻图解
    Java 8 Stream Api 中的 peek 操作
    Lombok 使用详解,简化Java编程
    C# 基础知识系列- 16 开发工具篇
    C# 基础知识系列- 15 异常处理篇
    C# 基础知识系列- 14 IO篇 流的使用
    Java Spring Cloud 实战之路-01 框架选型
    C# 基础知识系列- 14 IO篇 文件的操作
    C# 基础知识系列- 14 IO篇 文件的操作
  • 原文地址:https://www.cnblogs.com/xiaoshuzhagen/p/14725658.html
Copyright © 2011-2022 走看看