一、环境
- JDK 11
wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz --no-check-certificate
- graviteeio 安装包(官网下载地址:https://download.gravitee.io/#graviteeio-apim/distributions/)—我下的最新版本3.20.9
wget https://download.gravitee.io/graviteeio-apim/distributions/graviteeio-full-3.20.9.zip --no-check-certificate
- MongoDB 4.2.11
- ElasticSearch 7.9.2
- Nginx 1.10.3
- 服务器信息
IP | 配置 | 部署信息 |
---|---|---|
192.168.10.11 | 2c4G | nginx/api网关、控制台、门户前后端服务 |
192.168.10.12 | 2c4G | mongo |
192.168.10.13/14/15 | 2c4G | ElasticSearch集群 |
二、安装
基础环境(Nginx、ES、Mongo)的安装不再重复,直接开始Gravitee的安装部署
- 本文Gravitee安装根目录设置为:/data/gravitee
# 创建部署目录
mkdir -p /data/gravitee
# 进入部署目录
cd /data/gravitee
# 下载安装包,并解压
wget https://download.gravitee.io/graviteeio-apim/distributions/graviteeio-full-3.20.9.zip --no-check-certificate\
unzip graviteeio-full-3.20.9.zip
- 解压有四个目录
2.1、网关部署(graviteeio-apim-gateway)
- 配置文件修改(graviteeio-apim-gateway项目目录下的config/gravitee.yml)
# 进入部署目录
cd /data/gravitee/graviteeio-full-3.20.9/graviteeio-apim-gateway-3.20.9
vim config/gravitee.yml
- Mongo地址修改:单节点无密码只要修改ds.mongodb…
- ES配置(由于我是多节点,则将ds.elatic.host和ds.elatic.port注释,直接配置reporters.elasticsearch.XXX下的配置)如下:
- 其他配置暂不修改,使用默认的即可
- 启动服务
# 用nohup方式启动
nohup bin/gravitee > logs/nohup.log 2>&1 &
# 或者官方命令启动: bin/gravitee -d -p=/data/gravitee/graviteeio-full-3.20.9/graviteeio-apim-gateway-3.20.9/logs/gio.pid
- 查看控制台日志
tail -100f logs/nohup.log
# 如下日志,没有报错,则启动成功
……
15:28:19.617 [vert.x-eventloop-thread-2] [] INFO i.g.g.d.vertx.DebugReactorVerticle - Debug HTTP listener ready to accept requests on port 8482
15:28:19.633 [graviteeio-node] [] INFO i.g.g.standalone.node.GatewayNode - Gravitee.io - API Gateway id[b32bd1b2-de44-4bec-abd1-b2de442bec06] version[3.20.9] pid[4271] build[317635#5db0e3b7bf] jvm[Oracle Corporation/OpenJDK 64-Bit Server VM/11.0.2+9] started in 6816 ms.
……
-
启动后mongo会生成对应库,ES也会生成对应索引
-
API接口测试
curl -X GET http://localhost:8082/
# 返回值:No context-path matches the request URI.root
2.2 graviteeio-apim-rest-api安装
- cd到部署目录:cd /data/gravitee/graviteeio-full-3.20.9/graviteeio-apim-rest-api-3.20.9
- 修改配置文件:vim config/gravitee.yml (ES我使用的集群,将原有的单节点注释掉,配置集群)
- 启动服务
nohup ./bin/gravitee > logs/nohup.out 2>&1 &
# 或者官方命令:bin/gravitee -d -p=/data/gravitee/graviteeio-full-3.20.9/graviteeio-apim-rest-api-3.20.9/logs/gio.pid
- 查看日志
……
19:54:06.423 [graviteeio-node] INFO i.g.r.a.s.node.GraviteeApisNode - Gravitee.io - Rest APIs id[7df52b09-6cfe-414d-b52b-096cfe414d0a] version[3.20.9] pid[9992] build[317635#5db0e3b7bf] jvm[Oracle Corporation/OpenJDK 64-Bit Server VM/11.0.2+9] started in 10093 ms.
……
- 检查接口
# 管理平台api —— 改接口无返回值
curl -X GET http://localhost:8083/management/organizations/DEFAULT/environments/DEFAULT/apis
# 门户API接口
curl -X GET http://localhost:8083/portal/environments/DEFAULT/apis
# 门户API接口返回值:
{
"data" : [ ],
"metadata" : {
"data" : {
"total" : 0
}
}
}
2.3 管理平台和门户前端部署 — Nginx
- 修改管理平台配置文件:vim constants.json
# 内容修改为:
{
"baseURL": "http://192.168.10.11/management/organizations/DEFAULT/environments/DEFAULT"
}
- 这里使用nginx部署
# 控制台前端
server {
listen 81;
server_name localhost;
location / {
root /data/gravitee/graviteeio-full-3.20.9/graviteeio-apim-console-ui-3.20.9;
index index.html;
}
}
# 门户前端
server {
listen 82;
server_name localhost;
location / {
root /data/gravitee/graviteeio-full-3.20.9/graviteeio-apim-portal-ui-3.20.9;
index index.html;
}
}
- reload Nginx
nginx -s reload
Nginx代理配置
upstream apim-gateway {
server 192.168.10.11:8082;
}
upstream apim-management-api {
server 192.168.10.11:8083;
}
upstream apim-management-ui {
server 192.168.10.11:81;
}
upstream apim-portal-dev {
server 192.168.10.11:82;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
server {
listen 80;
location /gateway/ {
proxy_pass http://apim-gateway/;
}
location /management/ {
proxy_pass http://apim-management-api/management/;
}
location /console/ {
proxy_pass http://apim-management-ui/;
sub_filter_once on;
sub_filter '<base href="/' '<base href="/console/';
}
location /portal/ {
proxy_pass http://apim-management-api/portal/;
sub_filter_once on;
sub_filter '<base href="/' '<base href="/portal/';
}
location / {
proxy_pass http://apim-portal-dev/;
}
}
管理页面
- 访问:http://192.168.10.11/console/ (使用默认密码admin/admin登录即可)
门户页面
- 访问:http://192.168.10.11