HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

评论

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

zookeeper-curator开源框架介绍

zarmnosaj

7月月更

编写一个具有搜索提示的搜索框

空城机

JavaScript 7月月更

百度搜索打击盗版网文站点:互联网内容侵权现象为何屡禁不止

石头IT视角

Istio架构扩展机制

阿泽🧸

istio 7月月更

OSI七层模型有哪七层?每一层分别有啥作用,这篇文章讲的明明白白!

wljslmz

OSI七层协议 网络技术 7月月更

思维导图学《On Java》基础卷

Yano

Java

教你学c++算法题中最简单的二分,我不允许还有人不会!!!!

KEY.L

7月月更

利用Python浅尝算法分析

迷彩

算法复杂度 7月月更 算法分析

MySQL消息队列表结构

极客土豆

来,滑动到下一个小姐姐

岛上码农

flutter ios 前端 安卓开发 7月月更

Java多线程之锁优化与JUC常用类

未见花闻

7月月更

K3S - 轻量级Kubernetes集群

mengzyou

DevOps k8s k3s

Java基础 ——入坑必读

攻城狮杰森

Java 7月月更

项目升级遇到的坑

技术小生

7月月更

springboot 项目打包优化(核心 class 与依赖 jar 分离)

安逸的咸鱼

Java maven SpringBoot 2 7月月更

Go 并发编程基础:什么是上下文

宇宙之一粟

并发编程 Go 语言 7月月更

如何优雅的改变this指向

bo

JavaScript 前端 7月月更

互联网流量编排方案

穿过生命散发芬芳

7月月更 流量编排

【K8s入门必看】第二篇 —— 快速部署集群指南

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

python小知识-python格式化

AIWeker

Python python小知识 7月月更

谈谈文字两端对齐的css问题

南极一块修炼千年的大冰块

7月月更

QDS08 curl 安装

耳东@Erdong

curl qds 7月月更

千亿营收之后,阿里云生态有了新打法

B Impact

网络安全之ARP欺骗防护

网络安全学海

网络安全 安全 信息安全 渗透测试 漏洞挖掘

主题域模型

奔向架构师

数据仓库 7月月更

Docker 常用命令整合

宁在春

Docker 7月月更

【刷题记录】18. 四数之和

WangNing

7月月更

图的存储结构及方法(一)

乔乔

7月月更

Redis 事务学习有感

恒山其若陋兮

7月月更

【函数式编程实战】(三)Lambda表达式原理与函数式接口精讲

小明Java问道之路

Java Lambda 后端 java8 7月月更

沉淀2年的 Jira 自动化经验分享

跟YY哥学Jira

RPA 自动化 Jira

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