diff --git a/README.md b/README.md index 9869cdb0022c968d26e40c35646b11607f9f1d3d..7b854b61fafcc59d027651afe765c735ff240821 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ Goku API Gateway (中文名:悟空 API 网关)是一个基于 Golang 开 - [为什么要使用Goku](#为什么要使用Goku "为什么要使用Goku") - [产品特性](#产品特性 "产品特性") -- [快速安装](#快速安装 "快速安装") +- [产品截图](#产品截图 "产品截图") +- [产品部署](#产品部署 "产品部署") - [企业支持](#企业支持 "企业支持") - [关于我们](#关于我们 "关于我们") - [授权协议](#授权协议 "授权协议") @@ -41,164 +42,55 @@ Goku API Gateway 的社区版本(CE)拥有完善的使用指南和二次开 - **Open API**:提供 API 对网关进行操作,便于集成。 - ... -# 快速安装 +# 产品截图 +* 【首页】 +首页可以了解网关的基本信息,例如访问策略数、API数等,还可以了解请求和转发的情况,例如成功率等。 -> 建议控制台与节点分别部署在不同的服务器上,一般一台服务器/虚拟机部署一个网关节点。 -> 若要使用多个网关节点,需要将节点文件放置进多台服务器,并且在控制台新建多个节点。 -> 此处网关控制台与节点的部署指南,点击查看:[源码编译教程](https://help.eolinker.com/#/tutorial/?groupID=c-350&productID=19 "源码编译") +![](http://data.eolinker.com/course/KBlc3QQ5860ea4a8dd0f550ae5f9ff68a1fa7c870e9366e) -### 环境准备 -* **linux系统,内核版本 2.6.23+** -* **mysql ,版本 5.7+** -* **redis ,版本 3.0+** -* **net-tools** -* **golnag12.x** +* 【网关节点】 +网关支持集群化管理,进入不同的集群可以管理相应的节点。 -### 控制台安装 +![](http://data.eolinker.com/course/wEa9yEI2bf086f3873b55bbdaec32f3b4ce1eb23dfe44ea) -1.安装: -``` - mkdir -p {install dir} - mv console-{version}.tar.gz {tmp}/ - cd {tmp}/ - tar -xzf console-{version}.tar.gz - cd console-{version} && ./install.sh {install dir} - cd {install dir} - -``` - -2.首次安装进入{install dir}/console/config文件夹,编辑配置文件内容,配置语法参照yaml - -**goku.conf** 如下: -``` -admin_bind: 绑定节点获取配置的地址,形如IP:Port,填写内网地址或本机地址 -listen_port: 管理后台监听端口,可以开放给外网访问 -db_host: 数据库Host -db_port: 数据库监听端口 -db_name: 数据库名称 -db_user: 登录数据库的用户名 -db_password: 登录数据库的密码 -``` - -**cluster.yaml** 配置示例如下: -``` -cluster: - - - name: "GZ" # 机房主键,具有唯一性,仅支持英文(不区分大小写)、下划线、数字 - title: "广州机房" # 机房名称,具有唯一性,用于控制台显示集群名称,支持中文、英文(不区分大小写)、下划线、数字 - note: "从机房" # 机房备注,支持中文、英文(不区分大小写)、下划线、数字 - db: - driver: "mysql" # 数据库类型,可选项:mysql - host: "127.0.0.1" # 数据库主机地址 - port: 3306 # 数据库端口号 - userName: "root" # 用户名 - password: "123456" # 数据库密码 - database: "goku_ce" # 数据库名称 - redis: - mode: "cluster" # redis模式,可选项:stand/cluster - addrs: "127.0.0.1:6379,127.0.0.1:6380" # 多个地址间用英文逗号隔开 - password: "123456" # redis密码 - dbIndex: 0 # redis序号,非必填,默认值为0 - masters: mymaster # 当mode为sentinel时,该选项必填 - - - name: "BJ" - title: "北京机房" - note: "主机房" - db: - driver: "mysql" - host: "127.0.0.1" - port: 3306 - userName: "root" - password: "123456" - database: "goku_ce" - redis: - mode: "stand" - addrs: "127.0.0.1:6379" # stand、cluster模式下addrs为redis地址,多个地址间用英文逗号隔开 - password: "123456" - dbIndex: 0 -``` +* 【服务注册方式】 +您可以通过静态或动态的方式来注册(发现)您的后端服务,创建好服务注册方式后,您可以在某个方式的基础上创建一个或多个负载(Upstream)。 -3.初次安装创建数据库goku_ce,并运行{install dir}/console/sql文件夹下的goku_ce.sql,执行数据库脚本: -``` -mysql -u用户名 -p密码 {install dir}/console/sql/goku_ce.sql -``` - -4.进入{install dir}/console文件夹,运行run.sh文件以启动控制台 - -**首次运行**: -``` -.run.sh start {config file} 管理员账号 管理员密码 -``` +![](http://data.eolinker.com/course/1elb5mF4d3fd6141919001293e0119557b3d5ef0cea0719) -示例: -``` -.run.sh start config/goku.conf admin 123456 -``` +* 【负载配置】 +配置API的转发目标服务器(负载后端),创建之后可以设置为 API 的转发地址 / 负载后端(Target / Upstream)。 -**非首次运行**: -``` -.run.sh start|restart -``` +![](http://data.eolinker.com/course/4tHYXR23abc26b914ca763aac4871ed9d60a3aeb819941f) -5.在浏览器输入服务器IP+程序监听端口号,进入管理后台页面 +* 【接口管理】 +支持创建并管理API文档,并且支持导入API文档项目。 -注:程序监听端口号为goku.conf的配置项listen_port的值 +![](http://data.eolinker.com/course/WlTJ2kB1cd03ddf839ea1d489890a0bd5b0572efeff6043) -![](http://data.eolinker.com/course/nh4Xc8v24059c115375a87de682a0990ba723916923196f) +* 【访问策略】 +您可以给不同的调用方或应用设置访问策略,不同的访问策略可以设置不同的 API 访问权限、鉴权方式以及插件功能等。 -至此控制台已安装完成,在控制台新建节点后,需要通过命令行启动节点。 +![](http://data.eolinker.com/course/fUrHmVd0d2d88b7f72d985b0e93e434ed528648d2dd34db) +* 【告警设置】 +针对异常API可以设置告警提醒,支持邮件和Webhook通知。 -### 节点安装 +![](http://data.eolinker.com/course/9eQ3Lmv64e5cedc1ad4745dfa2895f6657441d874f6c7f4) -1.安装: - -``` - mkdir -p {install dir} - mv goku-node-{version}.tar.gz {tmp}/ - cd {tmp}/ - tar -xzf goku-node-{version}.tar.gz - cd goku-node-{version} && ./install.sh {install dir} - cd {install dir} -``` - -2.在管理后台新建节点 - -(1)登录控制台,点击一级导航的 **集群管理**,进入相应的集群: - -![](http://data.eolinker.com/course/Wi3hSZzece73986c4714431437a678ffe5ba86c2e21cc54) - -(2)为不同集群 **添加节点** : - -![](http://data.eolinker.com/course/rlWf1dI806427cc64c4b73af34dba35a758a4d9f21e86fc) - -(3)点击 **新增节点** 按钮,填写节点信息后点击 **确定**: - ->(a)新建节点时的节点IP字段填写内网IP或本地IP ->(b)若配置文件(goku.conf)中的admin_bind字段值IP部分为127.0.0.1或localhost,此处节点IP必须填写127.0.0.1 - -![](http://data.eolinker.com/course/S2Zjkdi511ae476f039aa53059e26a8b675458fb29841fc) - -3.启动节点程序: - -``` - {install dir}/run.sh {start|stop|reload|restart|force-reload} [admin url] [port] - -``` - -此处的admin url值与配置文件(goku.conf)中的admin_bind字段值一致。 - -示例: -``` - {install dir}/run.sh start 127.0.0.1:7005 7702 -``` +* 【扩展插件】 +插件系统除了提供官方插件,也可以添加自定义的网关插件。 -4.检查节点是否正常运行: +![](http://data.eolinker.com/course/sQhUflpcebf65dc43cb7e2e838e8d1ecf3e52e9a5a6c566) -进入节点管理页面,若节点的状态显示为运行中,则节点正常启动: +* 【日志设置】 +提供详细的请求日志和系统运行日志,请求日志可以自定义记录字段;运行日志可以根据情况调整记录等级:ERROR、INFO、DEBUG等。 -![](http://data.eolinker.com/course/WelR3FK9bbf28e791f4f6450bc4b7992efe0f73afec4845) +![](http://data.eolinker.com/course/iyifFJ2809fe63e27df709ddc1a22f94d983c5ecbf8cc29) +# 产品部署 +* [部署教程](https://help.eolinker.com/#/tutorial/?groupID=c-351&productID=19 "部署教程") +* [源码编译教程](https://help.eolinker.com/#/tutorial/?groupID=c-350&productID=19 "源码编译") # 企业支持 Goku API Gateway EE(企业版本)拥有更强大的功能、插件库以及专业的技术支持服务,如您需要了解可以通过以下方式联系我们。