最近在学习Kong网关,因此根据老习惯,我会将我的学习过程记录下来,一来体系化整理,二来作为笔记供将来翻看。由于我司会直接使用Kong企业版,学习过程中我会使用Kong开源版。

本篇,我们学习快速配置HTTPS跳转 与 TCP流代理。

HTTPS跳转配置

HTTP协议虽然应用广泛,简单易用,但存在着巨大的安全隐患,容易被抓包劫持和修改,尤其对于敏感信息的传递是十分不安全的。而HTTPS则通过数字证书、加密算法和非对称加密算法等技术对信息进行了加密,进而提高了一定的安全性。

在实际场景中,如果我们需要设置HTTP请求自动跳转到HTTPS的跳转,在Kong中只需要将对应路由的配置做以下两个修改即可:

(1)将Https Redirect Status Code改为301,即Moved Permanently永久重定向。

(2)将Protocols设置仅为https。

TCP流代理

Kong不仅可以针对第七层即应用层的HTTP代理,还可以对第四层即传输层进行TCP代理。默认情况下,流代理是关闭的,需要我们手动的打开

这里,我们调整一下docker-compose.yml文件中kong服务的参数,添加tcp流监听,这里我们设置的是7000端口来监听tcp流:

#######################################
# Kong: The API Gateway
#######################################
kong:
image: ${KONG_DOCKER_TAG:-kong:latest}
restart: on-failure
networks:
- kong-net
environment:
KONG_DATABASE: postgres
KONG_PG_HOST: kong-database
KONG_PG_DATABASE: kong
KONG_PG_USER: kong
KONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong}
KONG_PROXY_LISTEN: 0.0.0.0:8000
KONG_PROXY_LISTEN_SSL: 0.0.0.0:8443
KONG_ADMIN_LISTEN: 0.0.0.0:8001
KONG_ADMIN_LISTEN_SSL: 0.0.0.0:8444
KONG_STREAM_LISTEN: 0.0.0.0:7000 # 新增内容
depends_on:
- kong-database
healthcheck:
test: ["CMD", "kong", "health"]
interval: 10s
timeout: 10s
retries: 10
ports:
- "7000:7000" # 新增内容
- "80:8000"
- "8001:8001"
- "443:8443"
- "8444:8444"

修改完成之后,重新启动kong:

docker-compose up -d

这里,我们假设有一个MongoDB服务,我们需要设置客户端统一通过Kong来访问MongoDB服务,即使用Kong的TCP流代理来做转发。这在内网访问DB的场景中还是比较常见的。

首先,我们的服务器172.16.16.4上面有一个MongoDB服务,它的端口号是27017,我们可以通过客户端连接到MongoDB中。

现在,我们来用Kong来做MongoDB服务的代理。

首先,创建一个Service,取名为:mongodb-tcp-service,并设置Protocol为tcp。

随后,添加一条路由,取名为:mongodb-tcp-route。

这里,需要注意的是Sources的配置,一般情况下,我们对生产环境的数据库客户端访问通常是开白名单的方式,也就是指定IP地址才能访问。这里,为了方便测试,我们设置为0.0.0.0/0即所有客户端IP都可以访问。

配置完成后,便可以在客户端通过连接Kong的7000端口访问MongoDB数据库了。

测试一下,连接成功!

此外,我们还可以把上游的mongodb节点配置成upstream,这样就可以实现负载均衡的效果。这里就不再演示了,有兴趣的童鞋可以自己去试一试。

参考资料

闫观涛,《Kong入门与实践-基于Nginx和OpenRestry的云原生微服务网关》

作者:周旭龙

出处:https://edisonchou.cnblogs.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

Kong入门学习实践(6)HTTPS与TCP流代理的更多相关文章

  1. Nacos入门学习&实践

    文中涉及到了一些模块代码没有给出,我一并上传到github了,可以整个项目clone下来进行调试. 地址:https://github.com/stronglxp/springcloud-test 1 ...

  2. 万字长文:SpringCloud gateway入门学习&实践

    官方文档:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/# ...

  3. 学习资源 Docker从入门到实践 pdf ,docker基础总结导图

    学习资源 Docker从入门到实践 pdf ,docker基础总结导图 Docker从入门到实践 pdf 云盘地址:https://pan.baidu.com/s/1vYyxlW8SSFSsMuKaI ...

  4. 《深度学习框架PyTorch:入门与实践》的Loss函数构建代码运行问题

    在学习陈云的教程<深度学习框架PyTorch:入门与实践>的损失函数构建时代码如下: 可我运行如下代码: output = net(input) target = Variable(t.a ...

  5. 入门python:《Python编程从入门到实践》中文PDF+英文PDF+代码学习

    入门python推荐学习久负盛名的python入门书籍<Python编程从入门到实践>. 书中涵盖的内容是比较精简的,没有艰深晦涩的概念,最重要的是每个小结都附带有"动手试一试& ...

  6. 《Python编程:从入门到实践》基础知识部分学习笔记整理

    简介 此笔记为<Python编程:从入门到实践>中前 11 章的基础知识部分的学习笔记,不包含后面的项目部分. 书籍评价 从系统学习 Python 的角度,不推荐此书,个人更推荐使用< ...

  7. dubbo学习实践(2)之Dubbo入门Demo

    开篇之前,先来了解下dubbo服务治理与技术架构,直接看图 dubbo技术架构图: 1. 新建dubbo项目,目录结构如下 代码说明: 1.代码分为Provider(服务提供方)与consumer(服 ...

  8. Aho-Corasick算法、多模正则匹配、Snort入门学习

    希望解决的问题 . 在一些高流量.高IO的WAF中,是如何对规则库(POST.GET)中的字符串进行多正则匹配的,是单条轮询执行,还是多模式并发执行 . Snort是怎么组织.匹配高达上千条的正则规则 ...

  9. 美图App的移动端DNS优化实践:HTTPS请求耗时减小近半

    本文引用了颜向群发表于高可用架构公众号上的文章<聊聊HTTPS环境DNS优化:美图App请求耗时节约近半案例>的部分内容,感谢原作者. 1.引言 移动互联网时代,APP 厂商之间的竞争非常 ...

  10. Nginx 入门学习教程

    昨天听一个前同事说他们公司老大让他去研究下关于Nginx 方面的知识,我想了下Nginx 在如今的开发技术栈中应该会很大可能会用到,所以写篇博文记录总结下官网学习教程吧. 1. 什么是Nginx? 我 ...

随机推荐

  1. 使用SPA单页面跟MPA多页面的优缺点?

    SPA vs MPA 深度解析 1. 概述 什么是 SPA? SPA(Single Page Application,单页面应用)是一种仅加载一个 HTML 页面,并通过 JavaScript 动态更 ...

  2. langchain0.3教程:从0到1打造一个智能聊天机器人

    在上一篇文章<大模型开发之langchain0.3(一):入门篇> 中已经介绍了langchain开发框架的搭建,最后使用langchain实现了HelloWorld的代码案例,本篇文章将 ...

  3. git库移植

    记一次个人项目移植到组织项目的git应用,留爪. 1. 首先保证你本地有一份完整的库 2. 在 gitee 组织里新建一份裸库 3. 本地库移除所有远程库 git remote //查看所有远程库 g ...

  4. FireDAC开发DataSnap应用系统【3】-使用TFDJSONDatasets的CRUD功能

    类别 说明 TFDJSONDeltas 包含异动的delta的类别.客户端存放deltade对象 TFDJSONDeltasWriter 把deltas写入TFDJSONDeltas TFDJSOND ...

  5. 轻松的工作(deepseek)

    组长:"这里有一百多个地震波形文件,把每一个地震建立一个文件夹,并把地震波形放到对应日期的地震中." 我想:一个一个整好麻烦想摸会鱼 让我们来deepseek吧~ 首先,生成文件夹 ...

  6. 痞子衡嵌入式:恩智浦i.MX RT1xxx上特色外设XBAR那些事(1)- 初识

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1xxx系列上的XBAR外设. 得益于 Arm Cortex-M 内核的普及,现如今 MCU 厂商遍地开花,只要能取 ...

  7. 根据二叉树的前序和中序构建树,并按层次输出(C++)vector存树

    L2-006 树的遍历 #include <bits/stdc++.h> #define int long long using namespace std; #define endl ' ...

  8. 基于Lighthouse安装Docker

    1. 前言 在此之前小编通过各种方式介绍过自己通过服务器搭建的一些玩法,也写过一些教程,但是那些教程,现在回头来看,都是有些杂乱了,统一性不强.我就准备重新整理一下之前写的文章,并且准备重新开一个专题 ...

  9. 微信公众号-自定义微信分享(vue)(JS-SDK)

    1.需求描述 日常公众号开发中,业务部门对于微信内置分享(右上角->分享到朋友等)效果不太满意,需要我们自定义相关分享效果 1.1微信默认分享效果展示 1.2通过自定义分享后效果展示 1.3微信 ...

  10. <HarmonyOS第一课09>应用程序框架进阶#鸿蒙课程##鸿蒙生态#

    课程介绍 本课程<应用程序框架进阶>旨在深入探讨应用程序框架的核心概念和高级特性.课程首先介绍应用程序框架的基本概念,确保学员对框架有全面的认识.接着,我们将深入探讨AbilityStag ...