通过源文件在Linux下安装Kong(2.1.4)。
本示例以目前最新的版本为例基于数据库(Postgres)的安装。
操作系统:CentOS Linux release 7.5.1804 (Core)
1,通过git克隆kong-build-tools安装kong依赖的工具
kong-build-tools是安装kong 的基础环境。
安装依赖
yum install -y git patch gcc-c++
通过git克隆kong-build-tools
mkdir kong-build-tools
cd kong-build-tools
git clone https://github.com.cnpmjs.org/Kong/kong-build-tools.git
替换执行文件中的github.com为国内镜像,或者可能因为无法访问github.com操作编译失败
vi kong-build-tools/openresty-build-tools/kong-ngx-build
查找文件中的github.com 替换为github.com.cnpmjs.org
执行编译安装
./kong-build-tools/openresty-build-tools/kong-ngx-build --prefix /usr/local --work work --openresty 1.15.8.3 --openssl 1.1.1g --kong-nginx-module master --luarocks 3.3.1 --pcre 8.44 --jobs 6
配置环境变量
vi /etc/profile.d/kong.sh
加入如下内容:
export OPENSSL_DIR=/usr/local/openssl
export PATH=/usr/local/openresty/bin:$PATH
export PATH=/usr/local/openresty/nginx/sbin:$PATH
export PATH=/usr/local/openssl/bin:$PATH
export PATH=/usr/local/luarocks/bin:$PATH
刷新环境变量
source /etc/profile.d/kong.sh
通过以下命令检测安装情况
nginx -V
resty -v
openresty -V
openssl version -a
luarocks --version
建立luarocks软连接环境
ln -s /usr/local/luarocks/share/lua /usr/local/share/lua
2,通过git克隆kong的源文件进行编译安装
安装依赖
yum install -y libyaml libyaml-devel
通过git克隆kong的源文件
git clone https://github.com.cnpmjs.org/Kong/kong.git
进入目录进行编译
cd kong
切换至最新稳定版本分支(安装时最新稳定版本为2.1.4)
git checkout 2.1.4
编译安装
通过国内镜像下载lua-pack 进行编译安装
mkdir build-tools
cd build-tools
git clone https://github.com.cnpmjs.org/Kong/lua-pack.git
cd lua-pack
luarocks make
通过国内镜像下载lua-resty-cookie 进行编译安装
进入上面创建build-tools目录
cd ../../build-tools/
git clone https://github.com.cnpmjs.org/cloudflare/lua-resty-cookie.git
cd lua-resty-cookie/
根据情况安装需要的版本
luarocks make rockspecs/lua-resty-cookie-0.1.0-1.rockspec
通过国内镜像下载lua-resty-ipmatcher进行编译安装
进入上面创建build-tools目录
cd ../../build-tools/
git clone https://github.com.cnpmjs.org/iresty/lua-resty-ipmatcher.git
cd lua-resty-ipmatcher
根据情况安装需要的版本
luarocks make rockspec/lua-resty-ipmatcher-0.6-0.rockspec
通过国内镜像下载kong-plugin-proxy-cache进行编译安装
进入上面创建build-tools目录
cd ../../build-tools/
git clone https://github.com.cnpmjs.org/Kong/kong-plugin-proxy-cache.git
cd kong-plugin-proxy-cache
luarocks make
最后进入kong 的目录进行安装
cd ../../
删除build-tools目录
make install
配置Kong
建立环境软连接
ln -s /usr/local/luarocks/lib/lua /usr/local/lib/lua
ln -s /usr/local/luarocks/lib/luarocks /usr/local/lib/lua/luarocks
mv kong /usr/local/
mv bin/ /usr/local/kong/
配置环境变量
vi /etc/profile.d/kong.sh
加入如下内容:
export KONG_LUA_PATH_OVERRIDE=/usr/local/kong
export PATH=/usr/local/kong/bin:$PATH
刷新环境变量
source /etc/profile.d/kong.sh
测试一下已安装环境
kong version --vv
输出一下信息表示安装成功
配置kong的配置信息
mkdir /usr/local/kong/etc
cp kong.conf.default /usr/local/kong/etc/kong.conf
配置数据库信息
进入Postgres数据库创建数据、用户并授权
CREATE USER kong;
CREATE DATABASE kong OWNER kong;
初始化kong 数据库相关信息
kong migrations bootstrap [-conf /usr/local/kong/etc/kong.conf]
启动kong
kong start --prefix node [--conf /usr/local/kong/etc/kong.conf]
测试启动情况
curl --include http://localhost:8001/
配置开机启动
vi /usr/lib/systemd/system/kong.service
加入如下内容:
[Unit]
Description=kong
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="PATH=/usr/bin:/usr/local/openresty/bin:$PATH"
ExecStart=/usr/local/kong/bin/kong start [--conf /usr/local/kong/etc/kong.conf]
ExecReload=/usr/local/kong/bin/kong reload
ExecStop=/usr/local/kong/bin/kong stop
[Install]
WantedBy=multi-user.target
注册服务
systemctl enable kong.service