使用ngrok可以将在本地环境中运行的应用程序公开到外部
这篇文章是关于什么的?
以下是使用ngrok服务将本地环境中的WEB应用程序公开到外部的步骤记录。
环境
-
- Windows10 pro
-
- WSL2
-
- Docker 20.10.20
- Docker Compose v2.12.0
ngrok是什么?
ngrok是一个很方便的工具,可以将在本地运行的服务器公开到互联网上。通常在网页开发或应用程序开发等领域中,用于测试和演示在本地环境中开发的作品。
ngrok的机制如下。
1. 启动本地服务器
开发人员在自己的机器(例如PC)上启动网络服务器。这样一来,就可以生成在本地机器上运行的 Web 应用程序。
2. ngrok的启动
开发人员在同一台机器上启动ngrok。ngrok将在指定的端口(例如,Web应用程序正在运行的端口)开始监听。
3. 隧道的建立
ngrok在ngrok服务器(存在于ngrok基础设施中)和开发者的计算机之间建立安全隧道,使得本地计算机上的应用程序可以通过ngrok的公开URL进行访问。
4. 通过互联网获取的访问
开发者可以通过分享ngrok的公开URL与他人,从而可以通过互联网访问自己本地机器上的应用程序。这样一来,他们就可以进行自己开发应用的测试和演示。
准备
在使用ngrok之前,需要事先创建一个ngrok账户并生成一个Authtoken。
构建环境
我会使用Docker。在这里,我们把nginx服务器看作是一个web应用程序,并试图将其公开到外部。
docker-compose.yml文件
version: "3"
services:
nginx:
image: nginx:latest
container_name: nginx
expose:
- 80
ngrok:
container_name: ngrok
image: ngrok/ngrok:latest
restart: unless-stopped
command: ["http", "nginx:80"]
ports:
- 4040:4040
depends_on:
- nginx
environment:
- NGROK_AUTHTOKEN
在与docker-compose.yml文件相同的文件夹中,准备一个.env文件,并在其中写入通过账户创建时生成的NGROK_AUTHTOKEN。
NGROK_AUTHTOKEN=<発行したトークン>
开始
docker-compose up -d
确认访问
当您访问localhost:4040时,会显示如下的ngrok访问URL。
如果从另一台设备尝试访问此URL…
可以访问本地启动的nginx服务器。
查看docker-compose的日志,确实可以确认已被访问。
docker-compose logs -f nginx
总结
不需要部署就可以将应用程序在外部公开是非常方便的!当我们想要让别人体验我们在本地创建的应用程序时,这将非常有用。