阿里云服务器 CentOS 7上-- Docker 安装 网关(API-Getway)--KONG

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

全程操作按官方文档来就可以了。

 

1.将 Kong 连接到 Cassandra 或 PostgreSQL 容器

Kong支持 2 种数据库:Cassandra 或 PostgreSQL ,至于使用哪个完全 UP 2 U 。

执行以下命令启动Cassandra容器:

$ docker run -d --name kong-database \-p 9042:9042 \cassandra:3

 

通过执行以下命令来启动PostgreSQL容器:

docker run -d --name kong-database \-p 5432:5432 \-e "POSTGRES_USER=kong" \-e "POSTGRES_DB=kong" \postgres:9.5

 

我选择的是PostgreSQL,执行上述命令,如果当前环境没有对应镜像会自动从 Docker 仓库下载,直到这个命令执行完就可以查到这个镜像了,并且 kong-database 容器也有了。

( Kong 要求 postgres 9.4 或更高版本 ,并且要对数据库作大版本号升级的话对新手来说挺复杂,所以个人建议新安装尽量不要装版本号过低的数据库) 

查看 postgres 数据库的镜像和容器:

 

2.准备数据库

用一个 Kong 容器运行数据库迁移:

docker run --rm \--link kong-database:kong-database \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=kong-database" \-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \kong kong migrations up

运行如下:

这时 Kong 的数镜像已有了:

 

3.对 Kong 进行自定义配置

您可以用环境变量覆盖 Kong配置文件的 任何属性。只需将KONG_前缀添加到任何Kong配置属性中,例如:

$ docker run -d --name kong \-e "KONG_DATABASE=postgres"-e "KONG_PG_HOST=kong-database" \-e "KONG_LOG_LEVEL=info" \-e "KONG_CUSTOM_PLUGINS=helloworld" \-e "KONG_PG_HOST=1.1.1.1" \-e "KONG_ADMIN_LISTEN=0.0.0.0:8001" \-e "KONG_ADMIN_LISTEN_SSL=0.0.0.0:8444" \-p 8000:8000 \-p 8443:8443 \-p 8001:8001 \-p 8444:8444 \kong

 

至此 Kong 已安装成功 :

 

 

我的 kong 装好启动后不久总是会自动退出,后来想到: KONG 是基于 nginx ,所以装好 nginx

 docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx

运行后如下:


 

4. 安装 KONG 的图形化管理界面 kong-dashboard 

Start Kong Dashboard 命令如下:
docker run --rm -p 8080:8080 pgbi/kong-dashboard start --kong-url http://kong:8001

 

我在执行时给容器起了个比较好辨识的名字 : kong-dashboard 

另外我的 kong 是安装在 IP 为 xx.xx.xx.8 的物理机上,所以把 IP 地址也对应的设置了。

执行命令最终为:

docker run --rm -p 8080:8080 --name kong-dashboard pgbi/kong-dashboard start --kong-url http://xx.xx.xx.8:8001

 

依旧会自动下载所需镜像,运行完成。

 

 

可以通过以下命令查看服务是否正常启动:

curl http://服务器内网IP:8080/status  这个大概是请求的是kong应用的界面。

curl http://服务器内网IP:8001/status 这个大概是请求的是kong应用的接口。

 

最后成功访问到 UI 界面 :

备注:

1)如果遇到报错:

could not retrieve server_version: timeout

解决方法参见:Kong 启动报错解决

2)服务启动成功却在浏览器上始终访问不到界面,最后才想起是阿里云服务器上未开放端口8080。

开放端口 8080 就可以了。开放方法参见:阿里云服务器开放8080端口

 

参考Docker 官方文档:

https://docs.docker.com/samples/library/kong/#kongversion 

https://hub.docker.com/r/pgbi/kong-dashboard/

https://docs.docker.com/samples/library/nginx/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每个程序员都应该了解的内存知识

英文原文:lwn.net,翻译:开源中国 [编辑的话: Ulrich Drepper最近问我们,是不是有兴趣发表一篇他写的内存方面的长文。我们不用看太多就已经知道,LWN的读者们会喜欢这篇文章的。内存的使用常常是软件性能的决定性因子&…

idea debugger console 不见了--还原 console 图标

1 找了好久,也找不到,调试的时候挺麻烦的。 2 最后发现 有个一个重置,视图的按钮。点击一下就恢复 。 如下图。转自:https://blog.csdn.net/changdejie/article/details/64127026

实验五:任意输入10个int类型数据,排序输出,再找出素数

import java.util.Scanner; public class Pxsushu {public static void main(String[] args) {// TODO Auto-generated method stubScanner s new Scanner(System.in);int temp;//对数组事先声明并创建10个空间int[] a new int[10];//把输入的数存储为数组for (int i 0; i &…

grid - 隐式命名网格线名称

1.隐式的指定网格线反向指定了隐式的网格区域名称&#xff0c;命名的网格区域隐式的命名了网格线名称. 指定网格区域会给网格区域边线添加隐式的网格线名称。这些网格线的命名是基于网格区域来命名&#xff0c;只是在网格区域名称的后面添加后缀-start或-end. 1 <view class…

ReentrantLock源码

ReentrantLock与Synchronized区别在于后者是JVM实现&#xff0c;前者是JDK实现&#xff0c;属于Java对象&#xff0c;使用的时候必须有明确的加锁(Lock)和解锁(Release)方法&#xff0c;否则可能会造成死锁。 先来查看ReentrantLock的继承关系(下图)&#xff0c;实现了Lock和Se…

2020-3-16

题目一&#xff1a; 如何用js获取checked属性值。 通过checked属性可以设置复选框或者单选按钮处于选中状态。 <!DOCTYPE html> <html> <head> <meta charset" utf-8"> <script> window.onload ()>{let ckdocument.getElementByI…

2020-3-17

题目一&#xff1a; JavaScript 获取倒数第二个li元素 如何利用JavaScript获取li元素集合中的倒数第二个元素。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <style type"text/css"> #box{list-style:none;font-…

java.lang.UnsupportedOperationException 异常分析

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 今天将一个数组转换成 List 然后进行 remove 操作时却抛出 java.lang.UnsupportedOperationException 异常。 String pattern " ^,…

『并发包入坑指北』之阻塞队列

前言 较长一段时间以来我都发现不少开发者对 jdk 中的 J.U.C&#xff08;java.util.concurrent&#xff09;也就是 Java 并发包的使用甚少&#xff0c;更别谈对它的理解了&#xff1b;但这却也是我们进阶的必备关卡。 之前或多或少也分享过相关内容&#xff0c;但都不成体系&am…

2020-3-18

题目一&#xff1a; JavaScript 字符串转换为数组 其一&#xff1a; let str"apple"; console.log([...str]);运行结果 其二&#xff08;使用split()&#xff09;&#xff1a; let str"apple"; console.log(str.split());注1&#xff1a;如果将参数省略…

思维导图,流程图模板整合

思维导图与流程图在工作中都是经常使用的&#xff0c;出现频率较高的&#xff0c;有些不会绘制的或者是刚接触这一类的图表形式的都会选择使用模板来完成工作&#xff0c;但是很多朋友却不知道模板在&#xff0c;今天要给大家分享的是几款孩子走精美的思维导图&#xff0c;流程…

解决 List 执行 remove 时报异常 java.lang.UnsupportedOperationException

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、情况描述 报错如题&#xff1a; java.lang.UnsupportedOperationException: nullat java.util.Collections$UnmodifiableCollectio…

2020-3-19

题目一&#xff1a; js split() 分割字符串生成数组 let str"I am a student"; let arrstr.split(" "); for(let i0;i<arr.length;i){console.log(arr[i]); }分析&#xff1a;这里利用字符串的空格来分割字符串生成数组。split()方法的参数设置为"…

一文告诉你 Event Loop 是什么?

Event Loop 也叫做“事件循环”&#xff0c;它其实与 JavaScript 的运行机制有关。 JS初始设计 JavaScript 在设计之初便是单线程&#xff0c;程序运行时&#xff0c;只有一个线程存在&#xff0c;在特定的时候只能有特定的代码被执行。这和 JavaScript 的用途有关&#xff0c;…

Spring Boot -Shiro配置多Realm

2019独角兽企业重金招聘Python工程师标准>>> 核心类简介 xxxToken&#xff1a;用户凭证 xxxFilter&#xff1a;生产token&#xff0c;设置登录成功&#xff0c;登录失败处理方法&#xff0c;判断是否登录连接等 xxxRealm&#xff1a;依据配置的支持Token来认证用户信…

idea工具debug断点红色变成灰色

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 没事别瞎点&#xff0c;禁用了断点当然不走了 转自&#xff1a;https://blog.csdn.net/anlve512/article/details/54583469

2020-3-20前端题目

题目一&#xff1a; 判断checked复选框是否有被选中 <!DOCTYPE html> <html> <head> <meta charset" utf-8"> <script> window.onload () > {let odivdocument.getElementById("ant");let ckdocument.getElementById(&…

2020-3-21

题目一&#xff1a; JavaScript 获取月份最后一天日期 月份最后一天日期可能是不同的&#xff0c;比如有的是30、有的是31还有的是28。 <!DOCTYPE html><html> <head> <meta charset" utf-8"> <script type"text/javascript"&…

解决: Unable to connect to zookeeper server within timeout: 5000

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一个项目启动不起来了&#xff0c;报错如题&#xff1a; Caused by: org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to c…

TeamViewer13 -- 安装、使用说明

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Teamviewer13是一款强大的远程桌面控制工具&#xff0c;同时也是一款非常实用的共享文件传输工具&#xff0c;它拥有简洁的界面以及方便快…