安装 postgersql
安装,默认安装在/usr/pgsql-11
1
2
3$ yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-6-x86_64/pgdg-centos11-11-2.noarch.rpm
$ yum install postgresql11
$ yum install postgresql11-server初始化 -D是指定的数据文件,-X是指定的wal目录,-U 是创建数据账户 -W 会提示输入密码
1
$ /usr/pgsql-11/bin/initdb -D /export/Data/postgres -X /export/Logs/postgres -U admin -W
启动
1
$ /usr/pgsql-11/bin/pg_ctl -D /export/Data/postgres -l /export/Logs/postgres/postgres.log start
本地登录数据
1
$ /usr/pgsql-11/bin/psql -d template1
升级openssl
查看当前openssl版本,如果输出的版本低于:OpenSSL 1.0.2e则需要升级
1
$ openssl version
下载
1
$ wget https://www.openssl.org/source/openssl-1.0.2-latest.tar.gz
编译安装
1
2$ ./config --prefix=/usr --openssldir=/usr/openssl shared
$ make && make install
安装openresty
下载
1
$ wget https://openresty.org/download/openresty-1.13.6.2.tar.gz
编译安装
1
2$ ./configure --with-pcre-jit --with-http_ssl_module --with-http_realip_module --with-http_stub_status_module --with-http_v2_module --prefix=/export/servers/openresty
$ make && make install
安装luarocks
- 下载源码
1
2$ wget http://luarocks.github.io/luarocks/releases/luarocks-3.0.4.tar.gz
$ tar -xf luarocks-3.0.4.tar.gz
…
- 编译安
- 这里我们指定的安装目录是:/export/servers/luarocks-3.0.4
注意这里设置–with-lua和–with-lua-include,需要制定openresty目录下的luajit
1
2$ ./configure --prefix=/export/servers/luarocks-3.0.4 --with-lua=/export/servers/openresty/luajit --with-lua-include=/export/servers/openresty/luajit/include/luajit-2.1
$ make && make install设置环境变量
1
2
3export LUAROCKS_HOME=/export/servers/luarocks-3.0.4
PATH=$PATH:$LUAROCKS_HOME/bin
export PATH验证luarocks命令是否可用
1
$ luarocks
设置LUA_PATH
1
$ luarocks path
把上一步输出的环境变量,写入profile中,示例如下:
1 | export LUA_PATH='/home/admin/.luarocks/share/lua/5.1/?.lua;/home/admin/.luarocks/share/lua/5.1/?/init.lua;/export/servers/luarocks-3.0.4/share/lua/5.1/?.lua;/export/servers/luarocks-3.0.4/share/lua/5.1/?/init.lua;./?.lua;/usr/local/share/luajit-2.1.0-beta3/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua' |
kong依赖的lua包
正常情况下,编译kong的源码时,luarocks会自动下载相关依赖,但在公司服务器上无法通过git下载github上多个lua module源码进行编译打包(连接github一直超时),这里记录了需要手动下载源码在编译安装的lua包。
lua-resty-jit-uuid
1
2
3
4$ wget https://codeload.github.com/thibaultcha/lua-resty-jit-uuid/tar.gz/0.0.7
$ tar -xf 0.0.7
$ cd lua-resty-jit-uuid-0.0.7
$ luarocks makekong-lapis
1
2
3
4$ wget https://github.com/Kong/lapis/archive/v1.6.0.1.tar.gz
...
$ luarocks make kong-lapis-1.6.0.1-1.rockspeclua-pack
1
2
3$ wget https://github.com/Kong/lua-pack/archive/1.0.5.tar.gz
...
$ luarocks makelua-resty-cookie
1
2$ wget https://github.com/cloudflare/lua-resty-cookie/archive/v0.1.0.tar.gz
...由于该包解压后没有rockspec文件,无法通过luarocks打包,需要单独下载rockspec文件到解压后的目录下
1 | $ wget --no-check-certificate https://raw.githubusercontent.com/cloudflare/lua-resty-cookie/master/rockspecs/lua-resty-cookie-0.1.0-1.rockspec |
lua-resty-mlcache
1
2
3$ wget https://github.com/thibaultcha/lua-resty-mlcache/archive/2.2.0.tar.gz
...
$ luarocks makekong-plugin-serverless-functions
1
2$ wget https://github.com/Kong/kong-plugin-serverless-functions/archive/0.1.0.tar.gz
...由于该包的rockspec文件命名与需要的不符,需要单独下载rockspec文件到解压后的目录下
1
2
3$ wget http://webmail.luarocks.org/manifests/kong/kong-plugin-serverless-functions-0.1.0-0.rockspec
luarocks make kong-plugin-serverless-functions-0.1.0-0.rockspec
$ luarocks makekong-plugin-prometheus
1
2wget https://github.com/Kong/kong-plugin-prometheus/archive/0.1.0.tar.gz
...需要修改rockspec配置文件,把dependencies注释掉
1
$ luarocks make
安装kong
下载
1
$ wget https://github.com/Kong/kong/archive/0.14.1.tar.gz
解压
1
2
3$ tar -xf 0.14.1.tar.gz
$ mv kong-0.14.1 /export/servers
$ cd /export/servers/kong-0.14.1编译
1
$ make install
配置kong
- 拷贝默认配置文件
1
$ cp /export/servers/kong-0.14.1/kong.conf.default /export/servers/kong-0.14.1/kong.conf
需要修改的配置文件内容如下:
kong安装的目录
1
prefix = /export/servers/kong-0.14.1/
日志级别
1
log_level = notice
日志目录,注意确保启动kong的账户有日志目录的写权限,否则会启动失败,建议直接执行
1
2
3
4
5mkdir -p /export/Logs/kong/logs/
proxy_access_log = /export/Logs/kong/logs/access.log
proxy_error_log = /export/Logs/kong/logs/error.log
admin_access_log = /export/Logs/kong/logs/admin_access.log
admin_error_log = /export/Logs/kong/logs/error.log启动nginx的账户
1
nginx_user = admin admin
8000是对外提供访问服务的
1
proxy_listen = 0.0.0.0:8000, 0.0.0.0:8443 ssl
8001是admin接口使用,进行配置相关操作的
1
admin_listen = 0.0.0.0:8001, 127.0.0.1:8444 ssl
数据库相关配置,数据库主要存放配置的信息
1
2
3
4
5
6database = postgres
pg_host = 127.0.0.1
pg_port = 5432
pg_user = kong
pg_password =
pg_database = kong
创建kong的数据库账户,注意和kong.conf的数据库配置相匹配(注意: 只有安装第一个节点需要初始化数据库)1
$ /usr/pgsql-11/bin/psql -d template1
- 执行的sql
1
CREATE USER kong; CREATE DATABASE kong OWNER kong;
修改kong默认启动的nginx路径
kong会默认从几个路径寻找nginx命令来启动openresty,如果openresty安装的目录不再这几个目录下,机会启动失败,这里我们手动修改成我们自己安装的目录。1
$ vi /export/servers/kong-0.14.1/kong/cmd/utils/nginx_signals.lua
上面文件中,这个部分需要修改
1
2
3
4
5local nginx_search_paths = {
"/usr/local/openresty/nginx/sbin",
"/opt/openresty/nginx/sbin",
""
}修改后的
1
2
3local nginx_search_paths = {
"/export/servers/openresty/nginx/sbin"
}
初始化和启动kong
会连接数据库,创建kong需要的表
1
$ /export/servers/kong-0.14.1/bin/kong migrations up -c /export/servers/kong-0.14.1/kong.conf
启动kong(root账户下)
1
$ /export/servers/kong-0.14.1/bin/kong start --vv -c /export/servers/kong-0.14.1/kong.conf
验证kong的admin接口
1
$ curl -i http://localhost:8001/
停止kong
1
$ /export/servers/kong-0.14.1/bin/kong stop -p /export/servers/kong-0.14.1/