使用ngrok可以将在本地环境中运行的应用程序公开到外部

这篇文章是关于什么的?

以下是使用ngrok服务将本地环境中的WEB应用程序公开到外部的步骤记录。

环境

    • Windows10 pro

 

    • WSL2

 

    • Docker 20.10.20

 

    Docker Compose v2.12.0

ngrok是什么?

ngrok是一个很方便的工具,可以将在本地运行的服务器公开到互联网上。通常在网页开发或应用程序开发等领域中,用于测试和演示在本地环境中开发的作品。

ngrok的机制如下。

image.png

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。

image.png

如果从另一台设备尝试访问此URL…

image.png

可以访问本地启动的nginx服务器。
查看docker-compose的日志,确实可以确认已被访问。

docker-compose logs -f nginx

总结

不需要部署就可以将应用程序在外部公开是非常方便的!当我们想要让别人体验我们在本地创建的应用程序时,这将非常有用。

广告
将在 10 秒后关闭
bannerAds