Install Kong Api gateway
CentOS 系统直接yum安装
- 配置yum源
- 直接下载repo文件
- 直接下载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源码,参考文档Repository Packages
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 's@^Environment=PGDATA=.*$@Environment=PGDATA=/home/pgsql/data@g' /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