Kong源码安装

Kong源码安装

Kong is a cloud-native, fast, scalable, and distributed Microservice API Gateway

背景

虽然Kong已经出到了2.0,但是因为之前是基于Kong 1.2.1做的扩展开发,所以这里讲解Kong的源码、开发环境搭建都是基于1.2.1版本,后续的版本也可以按照这个流程走,只是各个组件的版本不一样而已。

依赖版本

0. kong 基于1.2.1的扩展

1. openresty 1.13.6.2

2. luarocks 2.4.3

安装依赖

ibyaml-devel.x86_64

安装yaml包`yum install libyaml-devel.x86_64`

如果没有yaml包,在执行`/data/app/luarocks/bin/luarocks make`编译kong的时候会报错:

1Error: Failed installing dependency: https://luarocks.org/lyaml-6.2.3-1.src.rock - Could not find library file for YAML 2 3  No file libyaml.a in /usr/local/lib 4 5  No file libyaml.a in /usr/local/lib64 6 7  No file libyaml.so in /usr/local/lib 8 9  No file libyaml.so in /usr/local/lib64 10 11  No file matching libyaml.so.* in /usr/local/lib 12 13  No file matching libyaml.so.* in /usr/local/lib64 14 15  No file libyaml.a in /usr/lib 16 17  No file libyaml.a in /usr/lib64 18 19  No file libyaml.so in /usr/lib 20 21  No file libyaml.so in /usr/lib64 22 23  No file matching libyaml.so.* in /usr/lib 24 25  No file matching libyaml.so.* in /usr/lib64 26 27You may have to install YAML in your system and/or pass YAML_DIR or YAML_LIBDIR to the luarocks command. 28 29Example: luarocks install lyaml YAML_DIR=/usr/local

安装openssl

下载openssl源码解压缩备用

使用openssl1.1.0l版本,需要将kong依赖中的luaossl版本改为:20190612(luaossl依赖openssl,所以一定需要先安装对应的openssl)

1cd /data/server/kong 2 3wget https://www.openssl.org/source/openssl-1.1.0l.tar.gz 4 5tar -xf openssl-1.1.0l.tar.gz 6 7root用户下安装openssl 8 9cd openssl-1.1.0l 10 11./config shared zlib 12 13make & make install 14 15mv /usr/bin/openssl /usr/bin/openssl.bak 16 17find / -name openssl 18 19ln -s /usr/local/bin/openssl /usr/bin/openssl 20 21echo "/usr/local/lib64/" >> /etc/ld.so.conf 22 23ldconfig 24 25openssl version -a

测试openssl安装结果

1openssl version -a 2 3输出如下内容 4 5OpenSSL 1.1.0l 10 Sep 2019 6 7built on: reproducible build, date unspecified 8 9platform: linux-x86_64 10 11......

安装openresty

下载编译安装Openresty

wget https://openresty.org/download/openresty-1.13.6.2.tar.gz

1./configure \ 2 3  --with-pcre-jit \ 4 5  --with-ipv6 \ 6 7  --with-http_realip_module \ 8 9  --with-http_ssl_module \ 10 11  --with-http_stub_status_module \ 12 13  --with-http_v2_module \ 14 15  --prefix=/data/app/openresty \ 16 17  --with-openssl=/data/server/kong/openssl-1.1.0l

修改环境变量

1vi ~/.bash_profile 2 3export PATH="$PATH:/data/app/openresty/bin" 4export PATH="$PATH:/data/app/openresty/luajit/lib" 5export PATH="$PATH:/data/app/openresty/luajit/include/luajit-2.1" 6 7source ~/.bash_profile 

安装luarocks

下载编译安装luarocks

1wget https://github.com/luarocks/luarocks/archive/2.4.3.zip 2 3./configure \ 4 5  --lua-suffix=jit \ 6 7  --prefix=/data/app/luarocks \ 8 9  --with-lua=/data/app/openresty/luajit \ 10 11  --with-lua-include=/data/app/openresty/luajit/include/luajit-2.1 12 13make build 14 15make install

修改环境变量

1vi ~/.bash_profile 2 3export PATH="$PATH:/data/app/luarocks/bin" 4 5export LUA_PATH="/data/app/luarocks/share/lua/5.1/?.lua" 6 7source ~/.bash_profile 

编译安装kong

上传kong的源码,或者下载官方源码

解压缩,进入源码根目录,执行`/data/app/luarocks/bin/luarocks make`

最后输出表示安装成功

kong 1.2.1-0 is now installed in /data/app/luarocks (license: Apache 2.0)

再再修改一环境变量

export PATH="$PATH:/data/server/kong/kong/bin"

修改配置

根据需要修改配置文件,启动服务

初始化环境

第一次使用Kong需要对环境初始化,初始化主要是将核心的表在数据库中进行创建、数据插入。

启动服务

通过bin/kong start -c kong.conf 启动服务。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )