0

我的 web 服务器在 wsl 上,而 beeware 在 anaconda 上(windows 版本不是 linux),如何配置 beeware 应用程序以与 wsl 服务器通信。有可行的方法吗?目前我正在使用 ngrok 主机作为网关。是否有任何替代方式不需要数据包在我的系统之外传输 是否有开发本地系统的指南?

4

1 回答 1

0

我将尝试笼统地回答这个问题,因为我目前不使用 Beeware/Anaconda。我尝试浏览 Beeware 文档,但其中太多(包括“发布”,这可能是 nginx 集成中的关键元素)是“即将推出”。

假设混合中没有虚拟机或容器,Windows应该检测 WSL2 实例上的端口并将它们正确映射到 localhost。例如,如果在 WSL youpython3 -m http.server 3000中,那么您应该能够在 Windows Web 浏览器中打开该页面,地址为 http://localhost:3000。因此,默认情况下,Windows 上的 Anaconda应该能够通过 localhost 访问 WSL 中的 Web 服务器。如果这没有发生:

  • 首先,确保 nginx 正在监听 0.0.0.0
  • 有时 Windows localhost 自动映射似乎会中断。有关一些其他想法,请参阅此答案。快速修复通常只是wsl --shutdown重置接口。长期修复可能是禁用 Windows 快速启动。

另一方面,如果需要从 nginx 到 Beeware/Anaconda 建立任何连接,WSL2 不会localhost 映射回 Windows 主机。您需要通过 Windows 主机 IP 访问它。

最简单的方法是使用 mDNS,这意味着您可以在 WSL2 中以 mDNS 名称“ mycomputername .local”访问 Windows 主机,其中mycomputername是 Windows“计算机名称”。

如果 mDNS 不起作用,请参阅此答案以获取更多详细信息和替代方案。

于 2021-01-19T23:51:12.600 回答