写点什么

开源软件包 ngrok-go 致力于让 Ingress 更容易地嵌入到 Go 应用中

  • 2023-03-29
    北京
  • 本文字数:898 字

    阅读完需:约 3 分钟

开源软件包ngrok-go致力于让Ingress更容易地嵌入到Go应用中

Ngrok-go是一个地道的(idiomatic)的 Go 软件包,它使 Go 应用程序能够通过 ngrok 的 ingress 即服务(ingress-as-a-service)平台安全地接收网络请求,就像监听本地端口一样。


ngrok-go 旨在简化网络 ingress 的创建,它负责处理网络栈中不同层的一些低级网络基元(primitive),这些基元目前需要由开发人员来设置,以启用网络 ingress。它们包括 DNS、TLS 证书、网络级 CIDR 策略、IP 与子网路由、负载均衡、VPN 和 NAT。


ngrok-go 可以看作一种将 ngrok 代理打包并嵌入 Go 应用程序的方式,从而为捆绑 ngrok 来创建网络 ingress 的应用消除了巨大的复杂性,例如物联网设备、CI/CD 流水线等。


ngrok-go 让开发人员只需一行代码就能将 Go 应用发布到互联网上,而无需设置 IP、证书、负载均衡器甚至端口等低级别的网络基元!


要通过 ngrok 将 ingress 嵌入 Go 应用,开发人员只需调用 ngrok-go 提供的ngrok.Listen原语即可。如果你的环境有ngrok authtoken的话,对Listen的调用将初始化与 ngrok 的安全和持久连接,并传输你所指定的配置需求,包括 URL、认证、IP 限制等,例如:


ngrok.Listen(ctx,        config.HTTPEndpoint(        config.WithDomain("my-app.ngrok.io"),        config.WithAllowCDIRString("192.30.252.0/22"),        config.WithCircuigBreaker(0.8),        config.WithCompression(),        config.WithOAuth("github")       ),        ngrok.WithAuthtokenFromEnv(),)
复制代码


调用Listen时指定的所有策略都由 ngrok 执行,它在边缘处拒绝所有未经授权的请求,这意味着只有有效的请求才能到达 Go 应用。


使用 ngrok-go 的另一个优势是它在 ingress 方面的“可移植性”。这意味着使用它的应用将以同样的方式运行,与底层平台无关,无论是裸机、虚拟机、AWS、Azure、Kubernetes 等均是如此。


虽然 ngrok 选择 Go 作为第一个支持的语言,但对其他语言的支持已经在进行中,包括RustJavaScript。对其他语言(如 Java、C#、Python 和 Ruby)的支持预计很快就会纳入路线图,这也会基于用户的反馈。


如果你有兴趣尝试,ngrok-go可以在GitHub上找到官方的入门指南是一个很好的起点。


原文链接:

Open-Source Package ngrok-go Aims to Make it Easier to Embed Ingress into Go Apps

2023-03-29 08:005268

评论

发布
暂无评论
发现更多内容

位列第五大生产要素,大数据该如何突破隐私安全魔咒?

CECBC

❄️【程序员必看系列】开源项目有盈利模式指南

码界西柚

开源 程序员 盈利模式 5月日更

Flutter开发:Failed to retrieve the Dart SDK…的解决方法

三掌柜

5月日更

阿里工作6年,熬到P7就剩这份学习笔记了,已助朋友拿到7个Offer

Java 程序员 架构 面试

ConcurrentHashMap

ltc

ConcurrentHashMap

Python 协程

若尘

协程 Python编程 5月日更

网络攻防学习笔记 Day18

穿过生命散发芬芳

5月日更 网络攻防

Unix/Linux 编程:网络编程之 线程池

赖猫

Linux Linux服务器开发 Linux网络编程

docker(centos系统)安装vim工具

liuzhen007

Docker 5月日更

从非洲血库到热带雨林:为什么普惠联接是社会的数字化支点?

脑极体

2千亿级超大模型的构建,能否突破中文场景的极限

这不科技

人工智能 nlp

数据挖掘从入门到放弃(五)seaborn 的数据可视化

数据社

机器学习 5月日更

《冰河的渗透实战笔记》电子书,442页,37万字,正式发布!!

冰河

网络安全 信息安全 渗透测试 网络攻防 互联网技术

“读万卷书,行万里路”,让你收获一个不平凡的人生

小天同学

读书 成长 旅行 5月日更

数字化战争即将开启,区块链将成为有效防护壁垒

CECBC

明天重新杨帆起航

IT蜗壳-Tango

5月日更

url踩坑记录

ES_her0

5月日更

霸榜GitHub的阿里内部Spring Boot实战文档到底有多强?

Java 架构 面试 微服务

分布式事务与分布式系统

邱学喆

分布式事务 raft CAP PAXOS 副本一致性

JavaScript 类型化数组

空城机

JavaScript 大前端 5月日更 类型化数组

Dubbo 负载均衡

青年IT男

dubbo

千万级学生管理系统的<考试试卷>存储方案

唐江

架构实战营

android端音频采集与播放

floer rivor

android 音视频

冈萨雷斯《数字图像处理》学习总结及感悟:第一章 绪论 百闻不如一见

老猿Python

图形图像处理 数字图像处理 冈萨雷斯

5分钟速读之Rust权威指南(四)

wzx

JavaScript rust

怎么学

Nydia

学习

架构学习笔记:架构定义

风翱

架构 5月日更

浪潮云向前进一步,又向后让一步

云计算

成功产品三要素

lenka

5月日更

Golang List, Ring and Map

escray

学习 极客时间 Go 语言 5月日更

集成学习案例一 (幸福感预测)

容光

数据处理

开源软件包ngrok-go致力于让Ingress更容易地嵌入到Go应用中_开源_Sergio De Simone_InfoQ精选文章