【官方链接】
【Packages】
Installation
yum install epel-release
yum install https://kong.bintray.com/kong-community-edition-rpm/centos/7/kong-community-edition-1.1.2.el7.noarch.rpm --nogpgcheck
whereis kong
# output:kong: /etc/kong /usr/local/bin/kong /usr/local/kong
如上,/ect/kong目录为配置文件目录,安装后会有一个官方的默认配置文件kong.conf.default 复制这个文件为kong.conf即可启动Kong.
/usr/local/kong为Kong的运行目录,Kong启动后会生成nginx的配置文件放在此目录,当然缓存文件也会存放在这个目录中。
Kong的配置文件中,如果没有启用某一项目配置,那么Kong会使用其默认的配置文件.
Kong基于openresty,所以通过包管理器来安装也会安装openresty,安装目录为/usr/local/openresty/
基本上我们不需要去修改这个目录,如果需要修改nginx的配置,我们可以通过Kong的配置文件注入nginx配置,Kong在启动的时候会生成nginx的配置文件。
使用数据库
配置 Kong,以便它可以连接到您的数据库。
Kong支持PostgreSQL 9.5+和Cassandra 3.xx作为其数据存储。我们选用并部署PostgreSQL。
创建一个名为 kong 的用户,并且创建一个名为 kong 的数据库,即:
sudo su - postgres
psql
create user kong with password '123456';
create database kong owner kong;
grant all privileges on database kong to kong;
现在,运行Kong迁移:
kong migrations bootstrap -c /etc/kong/kong.conf
Kong <0.15的注意事项:
Kong版本低于0.15(最高0.14)时,请使用up子命令代替bootstrap。还要注意,Kong <0.15时,永远不要同时运行迁移;一次只能有一个Kong节点执行迁移。对于0.15、1.0及更高版本,此限制被取消。
Configuration Kong
Notice: Please configure kong's data storage before this
cp /etc/kong/kong.conf.default /etc/kong/kong.conf
Fill the postgresql information you installed into the kong configuration file: /etc/kong/kong.conf
# 两个代理端口
proxy_listen = 0.0.0.0:8000, 0.0.0.0:8443 ssl
# 两个外部管理端口
admin_listen = 0.0.0.0:8001, 0.0.0.0:8444 ssl
database = postgres
pg_host = pgsql地址
pg_port = 5432
pg_user = kong
pg_password = "123456"
pg_database = kong
ssl = off # 如果不希望开放 8443 的 ssl 访问可关闭
Run
a. 启动kong
--vv 可以打印更多的启动日志
kong start -c /etc/kong/kong.conf --vv
注意:
CLI接受一个参数(-c /path/to/kong.conf),允许你指向自己的配置文件。如果不指定,默认是/etc/kong/kong.conf,这个文件也需要你自己创建,kong安装时提供了一个模板,在/etc/kong/kong.conf.default。
b. 验证Kong是否已经启动成功
如果一切正常,你应该能看到一条信息(Kong started),告知你Kong正在运行。
Kong 默认监听以下端口:
- 8000 Kong通过它来处理客户端进来的http请求,转发给上游服务
- 8443 Kong通过它来处理客户端进来的https请求,转发给上游服务.这个端口功能与8000有些像,除了它是用于https的。这个端口可以在配置文件中禁用。
- 8001 管理接口使用,用于配置Kong
- 8444 管理接口使用,https
c. 关闭Kong
你可以在需要的时候执行以下命令关闭Kong
$ kong stop
d. 重载Kong
执行以下命令重新加载Kong,无需停机
$ kong reload