我可以同时为前端和后端设置 ngrok 吗?

Posted

技术标签:

【中文标题】我可以同时为前端和后端设置 ngrok 吗?【英文标题】:Can I setup ngrok for front-end and back-end at the same time? 【发布时间】:2019-07-01 05:36:53 【问题描述】:

我想同时为前端和后端设置 ngrok,这是不可能的,因为我的前端在 Angular 6 上,而后端在 .net 核心中。

当前端和后端都在同一主机和端口上时,我实现了 ngrok。 (两者都在 .Net 和 MVC 中)。所以他们在同一个端口上运行。

现在,我想知道是否有其他方法可以做到这一点。

我的 Angular 6 在 http://localhost:4200/ 上运行 后端运行在https://localhost:44343/

如果有的话请给我建议。

【问题讨论】:

【参考方案1】:

我找到了一个在后端和前端都使用隧道的解决方案,在ngrok.yml 配置文件中定义它们。此文件在 Windows 中通常位于 C:\Users\you\.ngrok2\ngrok.yml。

authtoken: <your token is already here>
tunnels:
    frontend:
        proto: http
        addr: 3000
    backend:
        proto: http
        addr: 1337

React.js 的端口是 3000,Sails.js 的端口是 1337。

解除 ngrok 服务: ngrok start frontend backend

Ngrok 将重定向两个端口并提供两个地址而不是一个(如果您考虑 https,则总共四个)。

最后,我使用在 ngrok CLI 中找到的新 URL 更改了前端的 API 地址(您将通过查看端口号来识别它)。

我是通过阅读类似的帖子(您可以找到详细信息here)而不使用“子域”部分(仅在 ngrok 付费服务中可用)来找到该解决方案的。

【讨论】:

【参考方案2】:

好问题!我有一个类似的问题,我让我的后端在本地表现得像前端路径的代理服务器,因此它将传入的前端请求路由到本地前端服务器。在 Python 中,使用 Flask 很容易,使用此处描述的代理方法:https://***.com/a/36601467/38611

【讨论】:

以上是关于我可以同时为前端和后端设置 ngrok 吗?的主要内容,如果未能解决你的问题,请参考以下文章

AWS CloudFront 为不同的主机(前端和后端)设置 cookie

如何*同时*将 ngrok 用于后端和前端?

在前端和后端保护路由[关闭]

您可以使用 Django 框架将 Python 用于前端和后端吗? [关闭]

前端和后端需要啥呀?

前端和后端开发有啥区别吗