您的位置:首页 > 其它

kong的集群部署

2019-07-25 17:48 1426 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_44259356/article/details/97278134

kong的集群部署

https://blog.csdn.net/weixin_44259356/article/details/97278134
附上官方集群参考文档
https://docs.konghq.com/1.2.x/clustering/

(1)在多台服务器上安装kong

预先准备服务器环境为centos7,第一台服务器为centos6,安装kong,执行如下代码:

$ sudo yum update -y
$ sudo yum install -y wget
$ wget https://bintray.com/kong/kong-rpm/rpm -O bintray-kong-kong-rpm.repo
$ export major_version=`grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release | cut -d "." -f1`
$ sed -i -e 's/baseurl.*/&\/centos\/'$major_version''/ bintray-kong-kong-rpm.repo
$ sudo mv bintray-kong-kong-rpm.repo /etc/yum.repos.d/
$ sudo yum update -y
$ sudo yum install -y kong

安装成功结果如下:

修改kong的配置文件kong.conf
位置为ect/kong,修改内容如下:(注:这里使用的pg数据库必须得设置能远程访问,而且必须准备kong的配置,详见我的另一篇文章,kong的安装和部署

(2)从centos6迁移kong的数据

执行如下代码:

kong migrations bootstrap [-c /path/to/kong.conf]

结果如下:

将自定义插件部分覆盖kong文档
启动kong,并设置kong管理地址对外开放


通过kong admin ui 访问centos7的kong

(3)对比两台服务器kong数据是否一致

查看有关信息是否和centos6上的kong一致,这里截图只放了service信息


第一张截图为centos7上的kong,第二张截图为centos6上的kong,两个服务器ip地址在右上角,对比数据一致。
在centos6上的kong添加一个服务如下:

刷新centos7上的kong service信息如下:

在centos6上添加的服务成功添加到了centos7上,centos7 kong部署成功。
现在则可以横向扩展任意多个node节点,只要它们连接的是同一个数据库(或集群)即可,如果kong对外希望是一个入口,则可以将这些kong节点作为反向代理的上游,通过nginx转发即可。参考链接https://blog.csdn.net/tr1912/article/details/81603674

(4)Nginx kong负载均衡配置

upstream kong {
# 负载均衡算法,根据最少连接数
least_conn;
server 192.168.43.132:8000;
server 192.168.43.111:8000;
}

server {
# 这些端口要修改为实际情况
Listen 8088;
#include snippets/ssl-api.example.com.conf;
#include snippets/ssl-params.conf;
# https 因为安全原因,需要禁用 gzip
# 但是在一些场景下,不需要禁用
# gzip off;
gzip on;
# 设置允许压缩的页面最小字节数
gzip_min_length 1000;
gzip_buffers 4 16k;
gzip_http_version 1.1;
# 1~9,默认为1,数值越大,压缩率越高,CPU占用越多,时间越久
gzip_comp_level 3;
gzip_vary on;
# 禁用对 IE 6 使用 gzip 压缩
gzip_disable "MSIE [1-6]\.";
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/javascript "application/javascript; charset=utf-8" application/xml application/xml+rss application/json "application/json; charset=utf-8" fo
nt/ttf font/otf image/svg+xml;

# 设置最大允许的POST数据量,如果提交的文件超过这个值,会出现413错误
client_max_body_size 20m;
keepalive_timeout 15;

# 不显示 nginx 的版本号
server_tokens off;

## Individual nginx logs
access_log  /var/log/nginx/access.log;
error_log   /var/log/nginx/error.log;

# 这里不能用 ^~ 因为后面跟的是字符串不是正则表达式
# 只匹配符合规则的,其他都返回 404
location / {
# 这条命令会将 headers 中的 server 设置为 nginx 代理的后端网站所使用的
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://kong;
expires -1;
}

# 主页返回 404
location = / {
return 404;
}
}

(5)测试连接


配置成功

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: