Centos7单机部署kong文档步骤
前置步骤:已安装jdk1.8和tomcat
部署环境:centos7
目标任务:kong: v0.14.x, postgresql: v10.5(注意:psql版本必须与kong版本对应)
耗时任务:nodejs的安装(40+分钟)
安装依赖包
安装gcc编译环境
$ yum install -y gcc gcc-c++
pcre安装
nginx 的 http 库使用 pcre 解析正则表达式。
$ yum install -y pcre pcre-devel
zlib安装
zlib 库提供多种压缩和加压缩的方式。
$ yum install -y zlib zlib-devel
openssl安装
openssl 是一个请打的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议
$ yum install -y openssl openssl-devel
postgresql 部署
PostgreSQL是完全由社区驱动的开源项目,由全世界超过1000名贡献者所维护。它提供了单个完整功能的版本。可靠性是PostgreSQL的最高优先级。Kong 默认使用 postgresql 作为数据库。
这里安装kong的版本是0.14对应的psql版本需要在v10+,否则启动kong会报错
安装psql-10
$ yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-latest-x86_64/pgdg-centos10-10-2.noarch.rpm
$ yum install -y postgresql10-server postgresql10-contrib
初始化数据库
$ /usr/pgsql-10/bin/postgresql-10-setup initdb
设置成centos7开机自启动
systemctl enable postgresql-10.service
启动postgresql服务
# 启动服务
$ systemctl start postgresql-10.service
# 查看psql运行状态
$ systemctl status postgresql-10.service
Postgresql配置
执行完初始化任务之后,postgresql 会自动创建和生成两个用户和一个数据库:
linux 系统用户 postgres:管理数据库的系统用户;
postgresql 用户 postgres:数据库超级管理员;
数据库 postgres:用户 postgres 的默认数据库;
密码由于是默认生成的,需要在系统中修改一下。
修改初始密码
$ passwd postgres
输入: postgres
创建用户
为了安全以及满足 Kong 初始化的需求,需要在建立一个 postgre 用户 kong 和对应的 linux 用户 kong,并新建数据库 kong。
# 新建 linux kong 用户
$ adduser kong
# 使用管理员账号登录 psql 创建用户和数据库
# 切换 postgres 用户
# 切换 postgres 用户后,提示符变成 `-bash-4.3$`
$ su postgres
# 进入psql控制台,此时会进入到控制台(系统提示符变为'postgres=#')
bash-4.2$ psql
#建立新的数据库用户(和之前建立的系统用户要一样)
postgres=# create user kong with password 'kong';
#为新用户建立数据库
postgres=# create database kong owner kong;
#把新建的数据库权限赋予 kong
postgres=# grant all privileges on database kong to kong;
#退出控制台
postgres=# \q
bash-4.2$ exit;
注意:在 psql 控制台下执行命令,一定记得在命令后添加分号。
配置修改:
1、postgres的对外访问策略
认证权限配置文件为 /var/lib/pgsql/10/data/pg_hba.conf, 将6项配置修改为如下:
(
集群内所有节点都需要增加加入配置:
让10.200.10.0~10.200.10.154的IP段能访问PostgreSQL 数据库,需要增加下面一行
host all all 10.86.12.0/24 trust
)
2、pgsql开启远程访问
修改配置文件 /var/lib/pgsql/10/data/postgresql.conf ,
将 listen_address去掉注释并设置值为 '*'
$ vim var/lib/pgsql/10/data/postgresql.conf
listen_addresses = '*' # what IP address(es) to listen on;
3、修改以上两个配置文件后,重启postgresql服务:
$ systemctl restart postgresql-10.service
(若起不来,删除它的/root/data/postmaster.pid文件重试)
$ psql -U kong -d kong -h 127.0.0.1 -p 5432
kong=> \q 然后\q退出
kong部署
kong这块按照官网的方法不成功,最终下载了rpm包安装成功的。
下载kong
地址:https://docs.konghq.com/install/centos/?_ga=2.170317352.921280320.1539743753-1583657631.1536313213
根据环境选择对应版本下载,因为测试环境是centos7.5,所以点击Centos7下载
安装kong
$ yum install kong-community-edition-0.14.1.el7.noarch.rpm
安装过程选择y继续
新建并修改 kong 的配置文件
默认配置文件位于 /etc/kong/kong.conf.default
$ cp /etc/kong/kong.conf.default /etc/kong/kong.conf
将之前安装配置好的 postgresql 信息填入 kong 配置文件中:
$ vi /etc/kong/kong.conf
去掉注释并根据当前环境修改(集群中非本节点服务器时,要将pg_host改成服务器ip)
初始化数据库表
$ kong migrations up -c /etc/kong/kong.conf
启动kong服务
$ kong start
测试kong是否正确启动
$ curl 127.0.0.1:8001
准备kong环
安装nodejs (由于后面安装konga对nodejs版本有要求,所以最好安装8版本以上,免得到时候还要重装)
wget http://nodejs.org/dist/v7.4.0/node-v7.4.0.tar.gz
yum install gcc openssl-devel gcc-c++ compat-gcc-34 compat-gcc-34-c++
tar -xf node-v7.4.0.tar.gz
cd node-v7.4.0
./configure --prefix=/usr/local/node
make && make install
ln -s /usr/local/node/bin/* /usr/sbin/
配置npm
npm set prefix /usr/local
echo -e '\nexport PATH=/usr/local/lib/node_modules:$PATH' >> ~/.bashrc
source ~/.bashrc
先决条件:已安装了nodejs和npm
安装Kong Dashboard
npm install -g kong-dashboard
#
用一个没有被占用的端口启用
Kong Dashboard
kong-dashboard start --kong-url http://localhost:8001
如果8001被占用,可以用别的端口启用,比如:
kong-dashboard start --kong-url http://localhost:8001 --port 9001