Kong安装教程
下载postgresql启动
#安装yum仓库
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
#安装PostgreSQL:
sudo yum install -y postgresql10-server
Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
sudo systemctl enable postgresql-10
sudo systemctl start postgresql-10
kong安装环境搭建
#创建用户
useradd kong
#切换到postgres用户
su postgres
#进入控制台
psql
#首次登陆设置密码
\password postgres
#创建用户
create user kong with password 'kong';
#创建库
create database kong owner kong;
#授权
grant all privileges ondatabase kong tokong;
#修改var/lib/pgsql/9.6/data/pg_hba.conf 文件 添加host all all 0.0.0.0/0 trust
#修改var/lib/pgsql/9.6/data/postgresql.conf 添加listen_address 配置项为 *
#trust:凡是连接到服务器的,都是可信任的。只需要提供PostgresQL用户名,可以没有对应的操作系统同名用户。
password和md5:对于远程访问,需要提供PostgresQL用户名和密码。对于本地连接,提供PostgreSQL用户名密码之外,还需要有操作系统访问权(用操作系统同名用户验证)。password和md5的区别,就是远程访问时传输的密码是否用md5加密。
#ident:对于远程访问,从ident服务器获得客户端操作系统用户名,然后把操作系统作为数据库用户名进行登录对于本地连接,实际上使用了peer。
#peer:对于本地访问,通过客户端操作系统内核来获取当前系统登录的用户名,并作为PostgresQL用户名进行登录。
#重启后可使用软件连接postgresql数据库
使用docker-compose安装kong网关
#安装docker-compose
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
pip install docker-compose #安装pip依赖
https://www.cnblogs.com/qq952693358/p/9592300.html #解决code 1问题
kong模板文件(同时安装konga)
version: "3.7"
volumes:
kong_data: {}
networks:
kong-net:
services:
#######################################
Postgres: The database used by Kong
#######################################
kong-database:
image: postgres:9.6
container_name: kong-postgres
restart: on-failure
networks:
- kong-net
volumes:
- kong_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: kong
POSTGRES_PASSWORD: ${KONG_PG_PASSWORD:-kong}
POSTGRES_DB: kong
ports:
- "5432:5432"
healthcheck:
test: ["CMD", "pg_isready", "-U", "kong"]
interval: 30s
timeout: 30s
retries: 3
#######################################
Kong database migration
#######################################
kong-migration:
image: ${KONG_DOCKER_TAG:-kong:latest}
command: kong migrations bootstrap
networks:
- kong-net
restart: on-failure
environment:
KONG_DATABASE: postgres
KONG_PG_HOST: kong-database
KONG_PG_DATABASE: kong
KONG_PG_USER: kong
KONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong}
depends_on:
- kong-database
#######################################
Kong: The API Gateway
#######################################
kong:
image: ${KONG_DOCKER_TAG:-kong:latest}
restart: on-failure
networks:
- kong-net
environment:
KONG_DATABASE: postgres
KONG_PG_HOST: kong-database
KONG_PG_DATABASE: kong
KONG_PG_USER: kong
KONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong}
KONG_PROXY_LISTEN: 0.0.0.0:8000
KONG_PROXY_LISTEN_SSL: 0.0.0.0:8443
KONG_ADMIN_LISTEN: 0.0.0.0:8001
depends_on:
- kong-database
healthcheck:
test: ["CMD", "kong", "health"]
interval: 10s
timeout: 10s
retries: 10
ports:
- "8000:8000"
- "8001:8001"
- "8443:8443"
- "8444:8444"
#######################################
Konga database prepare
#######################################
konga-prepare:
image: pantsel/konga:latest
command: "-c prepare -a postgres -u postgresql://kong:${KONG_PG_PASSWORD:-kong}@kong-database:5432/konga"
networks:
- kong-net
restart: on-failure
depends_on:
- kong-database
#######################################
Konga: Kong GUI
#######################################
konga:
image: pantsel/konga:latest
restart: always
networks:
- kong-net
environment:
DB_ADAPTER: postgres
DB_URI: postgresql://kong:${KONG_PG_PASSWORD:-kong}@kong-database:5432/konga
NODE_ENV: production
depends_on:
- kong-database
ports:
- "1337:1337"
docker-compose部署
docker-compose up -d
docker stop compose_test_konga_1 #停止正在运行的容器
docker cp compose_test_konga_1:/app/assets ./ #将容器的文件复制到本地
docker pull jsonljd/konga-lang-plugin:latest #拉取语言插件镜像
docker run -d --name konga-lang-plugin -v /Users/hezhaoming/Documents/docker/kong/assets:/app/assets jsonljd/konga-lang-plugin
docker cp ./assets compose_test_konga_1:/app/ #覆盖成功后即可
docker start compose_test_konga_1 #重启容器