无论是否有数据库,Kong都可以运行。

使用数据库时,您将使用kong.conf配置文件在启动时设置Kong的配置属性,并将数据库用作所有已配置实体的存储,例如Kong代理所在的 Routes 和 Services 。

不使用数据库时,您将使用kong.conf的配置属性和kong.yml文件来将实体指定为声明性配置。

使用数据库

  1. 安装依赖项

    OpenResty 1.15.8.1。作为一个OpenResty应用程序,您必须遵循OpenResty安装说明。您将需要OpenSSL和PCRE来编译OpenResty,并至少使用以下编译选项:

    1
    2
    3
    4
    5
    6
    $ ./configure \
    --with-pcre-jit \
    --with-http_ssl_module \
    --with-http_realip_module \
    --with-http_stub_status_module \
    --with-http_v2_module

    您可能必须指定--with-openssl,并且可以添加任何其他您想要的选项,例如其他Nginx模块或自定义--prefix目录。

    OpenResty可以方便地捆绑LuaJITresty-cli,它们对于Kong来说是必不可少的。将nginx和resty可执行文件添加到$ PATH

    1
    $ export PATH="$PATH:/usr/local/openresty/bin"

    Luarocks 3.1.3,使用与OpenResty捆绑的LuaJIT版本编译(请参阅--with-lua--with-lua-include配置选项)。例:

    1
    2
    3
    4
    ./configure \
    --lua-suffix=jit \
    --with-lua=/usr/local/openresty/luajit \
    --with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1
  1. 安装 Kong

    现在已经安装了OpenResty,我们可以使用Luarocks来安装Kong的Lua源:

    1
    $ luarocks install kong 1.3.0-0

    或者

    1
    2
    3
    $ git clone git@github.com:Kong/kong.git
    $ cd kong
    $ [sudo] make install # this simply runs the `luarocks make kong-*.rockspec` command
  1. 添加kong.conf

    注意:如果您使用的是Cassandra,则需要执行此步骤;它是Postgres用户的可选项。

    默认情况下,Kong配置为与本地Postgres实例通信。
    如果您使用的是Cassandra,或者需要修改任何设置,请下载kong.conf.default文件并根据需要进行调整。
    然后,以root身份将其添加到/etc

    1
    2
    $ sudo mkdir -p /etc/kong
    $ sudo cp kong.conf.default /etc/kong/kong.conf
  1. 准备数据库

    配置Kong以便它可以连接到您的数据库。Kong支持PostgreSQL 9.5+Cassandra 3.x.x作为其数据存储。

    如果您使用的是Postgres,请在启动Kong之前配置数据库和用户:

    1
    CREATE USER kong; CREATE DATABASE kong OWNER kong;

    接下来,运行Kong迁移:

    1
    $ kong migrations bootstrap [-c /path/to/kong.conf]
> 对于Kong < 0.15的注意事项:如果Kong版本低于0.15(最高0.14),请使用`up`子命令而不是`bootstrap`。另请注意,如果Kong < 0.15,则不应同时进行迁移;只有一个Kong节点应该一次执行迁移。对于0.15,1.0及以上的Kong,此限制被取消。
  1. 启动Kong

    1
    $ kong start [-c /path/to/kong.conf]
  1. 使用Kong

    Kong正在运行

    1
    $ curl -i http://localhost:8001/

不使用数据库

  1. 按照上面的列表中的步骤1和2(安装依赖项,安装Kong)。

  2. 写声明性配置文件

    以下命令将在当前文件夹中生成kong.yml文件。它包含有关如何填写它的说明。执行此操作时,请遵循[声明配置格式]:/1.3.x/db-less-and-declarative-config/#the-declarative-configuration-format说明。

    1
    $ kong config init

    我们假设该文件名为kong.yml

  3. 添加kong.conf

    下载kong.conf.default文件并根据需要进行调整

    特别是,确保将database配置选项设置为off,并将declarative_config选项设置为kong.yml的绝对路径

    1
    2
    3
    database = off
    ...
    declarative_config = /path/to/kong.yml
  1. 启动Kong

    1
    $ kong start [-c /path/to/kong.conf]
  1. 使用Kong

    Kong正在运行

    1
    $ curl -i http://localhost:8001/