使用 Python 和 Ngrok 快速创建一个本地 Web 服务器
开始一份新工作的好处之一就是,你必须从零开始搭建所有的开发工具和环境。而有些你以为永远不会忘记的事情,却顽固地隐藏在那些更容易回忆起来的记忆背后。
最近我就遇到了这种情况。在一台才用了几周的机器上,我需要快速地将一个HTML文件上传到网络,以便外部用户能够访问。虽然之前我已经做过几十次这样的操作,但这次我怎么也想不起来具体需要哪些工具了。
经过一番摸索,我终于明白了。我只需要运行一条 Python 命令就能启动本地 Web 服务器。然后,借助名为ngrok的工具,我就可以让全世界访问这个服务器。
写这篇博文更像是为了防止我记性不好,方便以后随时回顾这些内容。当然,如果您对此感兴趣,也欢迎继续阅读。首先,我们来启动运行在 8000 端口的 Python Web 服务器。
Python
启动 Web 服务器的一个超快速方法是使用 Python 的 SimpleHttpServer,几乎不需要任何配置(尤其是在 macOS 系统上)。在 Python 2.7(macOS 自带的默认版本)中,只需运行以下命令即可启动服务器python -m SimpleHTTPServer 8000。
在 Python 3 中,可以通过运行以下命令来完成此操作python -m http.server 8000。
使用此命令,服务器SimpleHTTPServer会将当前目录的内容通过 8000 端口提供出去。您可以指定任何端口,但请确保该端口当前未被占用。您可以通过在浏览器中输入http://localhost:8000/来访问本地内容。现在,这个简单的 Web 服务器已经运行,接下来需要配置 ngrok,使其能够被整个互联网访问。
ngrok
Ngrok 是一款工具,它为本地应用程序访问互联网以及互联网访问本地应用程序提供了一条安全隧道。这种隧道功能在演示或测试网站时非常实用,无需实际部署即可完成。例如,如果您正在构建一个订阅 Webhook 的应用程序,而这些 Webhook 需要一个回调 URL 才能访问您计算机上的应用程序,那么 Ngrok 会提供该地址供 Webhook 调用。就我而言,我只是需要一种简单的方法来提供 HTML 文件。
ngrok 的功能非常丰富,但本文仅重点介绍如何在指定端口上建立简单的 HTTP 隧道。具体步骤如下:
- 从ngrok 下载页面下载 ngrok 。
- 提取 ngrok 可执行文件并将其放在你认为合适的位置。我把它放在了
/Applications/Utilities. - 要让
ngrok可执行文件PATH在系统任何位置都能运行,请创建一个/usr/local/bin/指向其ngrok保存位置的符号链接。如果它位于上面提到的“实用工具”目录中,则符号链接命令如下所示。ln -s /Application/Utilities/ngrok /usr/local/bin/ngrok - 进入程序运行所在的目录
SimpleHTTPServer,然后运行以下命令ngrok http 8000
ngrok 输出结果如下:
您要查找的关键信息是 `<subdomain>` 的值Forwarding。本地 Web 服务器现在可以通过这些x.ngrok.io域名访问。当向此隧道发出请求时,结果会记录在 ngrok CLI 的“连接”部分。对于免费版的 ngrok,此会话将持续 8 小时。当 ngrok 进程过期或重启时,地址中的子域名值将会改变。如果您需要始终保持相同的地址,我相信您可以从 ngrok 购买许可证。
现在有了这两个简单的工具,你就可以随心所欲地搭建可公开访问的Web服务器了。
文章来源:https://dev.to/stmcallister/create-a-quick-local-web-server-with-python-and-ngrok-k0
