欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

kong API网关服务安装

程序员文章站 2022-06-03 20:29:58
...

Install Kong Api gateway

CentOS 系统直接yum安装

  • 配置yum源
    • 直接下载repo文件

cd /etc/yum.repos.d/
wget https://bintray.com/mashape/kong-rpm-el7-0.9.x/rpm -O bintray-mashape-kong-rpm-el7-0.9.x.repo
```

  • 或者直接编辑repo文件

cat>/etc/yum.repos.d/bintray-mashape-kong-rpm-el7-0.9.x.repo<<EOF
[bintraybintray-mashape-kong-rpm-el7-0.9.x]
name=bintray-mashape-kong-rpm-el7-0.9.x
baseurl=https://dl.bintray.com/mashape/kong-rpm-el7-0.9.x
gpgcheck=0
repo_gpgcheck=0
enabled=1
EOF
```

  • yum clean all && yum makecache
  • yum install kong -y

安装PostgreSQL9.4数据库

kong支持PostgreSQL 9.4+ 和 Cassandra 2.2.x 数据库,这里以PostgreSQL为例

yum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-3.noarch.rpm
yum makecache
yum install postgresql94-server postgresql94-contrib -y

* 创建postgres系统用户,yum安装的又自动创建用户

shell> id postgres
uid=26(postgres) gid=26(postgres) 组=26(postgres)

* 初始化数据目录

先修改下家目录

rsync -avP /var/lib/pgsql /home/
usermod -d /home/pgsql postgres
su - postgres
/usr/pgsql-9.4/bin/initdb -D /home/pgsql/data

postgresql 安装到了 /usr/pgsql-9.4,可以考虑加到PATH,export PATH=$PATH:/usr/pgsql-9.4/bin

修改下systemctl服务脚本

sed -i '[email protected]^Environment=PGDATA=.*[email protected]=PGDATA=/home/pgsql/[email protected]' /usr/lib/systemd/system/postgresql-9.4.service

* 启动服务 
`systemctl start postgresql-9.4` 
* postgresql 连接配置

配置项 | 默认值 | 说明
--- | --- | ---
listen_addresses | localhost | * - 允许所有可用连接<br/>0.0.0.0 - 允许所有ipv4连接<br/>:: - 允许所有ipv6链接
port | 5432 | 服务侦听的端口
max_connections | 100 | 最大连接数
superuser_reserved_connections | 3 | 必须小于 max_connections,专为superuser保留的连接数
unix_socket_directories | /tmp | socket 监听目录,多个目录用,隔开,空字符串则禁用socket连接
unix_socket_group | 默认为空 | 默认使用服务用户的所有组
unix_socket_permissions | 0777 | socket文件的权限
* 安全与验证配置

配置项 | 默认值 | 说明
--- | --- | ---
authentication_timeout | 1m | 验证超时时间 
ssl | off | 是否开启ssl加密连接
ssl_ca_file | 默认为空 | 如使用相对路径则是相对于PGDATA目录
ssl_cert_file | server.crt | 如使用相对路径则是相对于PGDATA目录
ssl_crl_file | 默认为空 | 如使用相对路径则是相对于PGDATA目录
ssl_key_file | server.key | 如使用相对路径则是相对于PGDATA目录
ssl_ciphers | `HIGH:MEDIUM:+3DES:!aNULL` | 
password_encryption | on | 在CREATE USER 或 ALTER ROLE 未指定 ENCRYPTED/UNENCRYPTED 时是否加密密码
db_user_namespace | off | 是否启用单库单用户名

### 为kong创建数据库与用户

CREATE ROLE kong LOGIN ENCRYPTED PASSWORD 'xxxxxxxx' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE kong_db WITH ENCODING='UTF8' OWNER=kong;


## 配置kong

cd /etc/kong/
cp kong.conf.default kong.conf

编辑以下内容

database = postgres # 数据库类型 postgres/cassandra
pg_host = 127.0.0.1 # 数据库主机地址
pg_port = 5432 # 数据库侦听端口
pg_user = kong # 用户名
pg_password = password # 密码
pg_database = kong # 数据库名
pg_ssl = off
pg_ssl_verify = off


### 启动kong服务

kong start

验证下

curl 127.0.0.1:8001

### 关闭kong服务

kong stop


### 重载kong服务

kong reload