阿里云飞天发布时刻,领先大模型限免,超7000万 tokens免费体验 了解详情
写点什么

开源软件包 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:005017

评论

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

Termius (终端模拟器/ssh/sftp客户端软件)

Rose

实用的快速编写代码软件 TeaCode for Mac v1.1.3激活版

Rose

vivo 全链路多版本开发测试环境落地实践

vivo互联网技术

测试环境 流量染色

搭建 CNode 技术社区智能体

Botnow

node.js 开源 AI AI 智能体

借助Python和搜狐视频联盟API自动推荐热门视频

幂简集成

视频 API

火山引擎AI创新巡展深圳站定档9月24日!豆包大模型将全新发布视频生成模型

新消费日报

假期结束秋招喜来,瞧瞧节后字节跳动的面经

王中阳Go

面经 go基础 Go面试宝典 Go 面试题 面经 后端 大厂

JDK23如约而至,数十种新玩法,你期待哪一种?

江南一点雨

FotoMagico for Mac(专业幻灯片制作软件)v6.7.2激活版

Rose

Caffeinated for Mac(系统防睡眠工具) v2.0.7激活版

Rose

关于深度学习量化的操作

芯动大师

深度学习 gpu 模型化

【Abyss】Android平台应用级系统调用拦截框架

iofomo

android 安全 拦截器

ps替代品:苹果图像处理软件Acorn for mac注册版

Rose

Qbserve for Mac 提高工作效率 v1.9激活版

Rose

Axure RP 10中文授权版永久使用 mac/win

Rose

苹果电脑防火墙软件 Radio Silence for mac v3.3 最新永久密钥

Rose

功能强大的矢量绘图软件 EazyDraw for Mac v11.8.2中文版

Rose

苹果电脑数据库管理工具 Valentina Studio Pro for Mac v14.5激活版

Rose

开发一个 PicGo 插件

yuanyxh

前端 PicGo js

OpenAI o1开辟“慢思考”,国产AI早已集结在CoE“组团”先出发

脑极体

AI

探索淘宝API:解锁关键词搜索商品列表的无限可能

代码忍者

API 接口 pinduoduo API

Go 错误处理指北:pkg/errors 源码解读

江湖十年

后端 错误 错误处理 Go 面试题 面经 后端 大厂

联想正式在印度生产AI服务器!致力于在印度开发世界“尖端”技术真的能实现吗?|AI日报

可信AI进展

解锁 PDF 文件:使用 JavaScript 和 Canvas 渲染 PDF 内容

yuanyxh

前端 js PDF

Path Finder for Mac(强大的文件管理工具) v2176中文激活版

Rose

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