ngrok 是什么,我们为什么要使用它?
什么是ngrok?
ngrok是一个全球分布的反向代理,无论您在哪里运行,它都能保护、保护和加速您的应用程序和网络服务。您可以将ngrok视为应用程序的前门。
ngrok是独立于环境的,因为它可以向任何地方运行的服务提供流量,而不会改变您的环境网络。在 AWS、Azure、Heroku、阿里云、腾讯云本地 Kubernetes 集群、树莓派甚至笔记本电脑上运行您的应用程序。有了ngrok,一切工作都是一样的。
ngrok 是一个统一的入口平台,因为它将所有组件整合到一个组件中,将您的服务传输到互联网。ngrok将您的反向代理、负载平衡器、API网关、防火墙、交付网络、DDoS保护等整合在一起。
你能用ngrok做什么?
开发和测试
- Webhook测试:在本地机器上运行ngrok,以获取直接在您正在开发的应用程序中接收Webhook的URL。满足快速开发的需求。
- 本地预览:在没有服务器的时候向客户演示在本地机器上运行的网站,而无需部署到远程服务站点。
- 移动后端测试:针对正在本地机器上开发的后端测试您的移动应用程序,尤其适合小程序开发的需求场景。
进入外部网络
- 客户网络中的API:在客户的环境中运行轻量级ngrok代理或Kubernetes控制器,以安全地连接到其网络中的API,而无需复杂的网络配置。
- 设备上的API:在您的设备上作为服务运行ngrok,为其本地API创建安全URL,使您的云服务能够控制和管理它们。
- 本地开发环境中的API:将ngrok作为库导入您自己的CLI,以便您可以为开发人员客户创建更好的本地开发体验。
生产入口
- API网关:使用ngrok的HTTP模块来保护、加速和转换流量到您的生产API。
- Kubernetes Ingress:运行ngrok的入口控制器,以创建在任何Kubernetes集群中运行的k8s服务的入口。
- 身份感知代理:使用ngrok的OAuth、SAML或OpenID Connect模块将应用程序的身份验证整合到身份提供商。
- 负载平衡器:使用边缘负载平衡流量,以获得可扩展性和故障转移,或进行蓝色/绿色和金丝雀部署。
远程访问
- SSH:创建TCP端点以启用SSH访问远程机器。
- RDP:创建TCP端点,使RDP能够访问远程机器。
ngrok与传统反向代理
ngrok不会像传统反向代理那样转发到IP地址,而是通过与您的应用程序一起运行或在应用程序中运行的轻量级代理软件向您的上游服务发送连接。
与传统模型相比,这种独特的架构赋予了几个重要优势。
首先: 这意味着您可以在任何地方运行服务——任何云,如AWS或Azure,任何应用程序平台,如Heroku,本地数据中心,家中的树莓派,甚至在笔记本电脑上。
其次: 它允许ngrok提供零网络配置的入口。您不需要使用DNS、IP、证书或端口等神秘的网络原语。该配置被推送到ngrok的边缘,并且全部会自动为您处理。
第三: ngrok可以保护您免受ATTACK并强制身份验证,而不必担心有人可以通过发现您的上游IP地址来工具。
安装 ngrok
安装步骤可查看:https://ngrok.com/docs/getting-started/
如何使用
发布本地的应用
执行命令:ngrok http http://localhost:8080
可以将本机网络发布
在浏览器中打开转发URL https://847b-103-10-87-66.ngrok.io
,将看到您本地的Web应用程序。
- 此
URL
可供互联网上的任何人使用。通过发送给朋友来测试它! - 您的应用程序可通过HTTPS(注意浏览器窗口中的