【问题标题】:sending http request from azure web app to my machine从 azure web 应用程序向我的机器发送 http 请求
【发布时间】:2021-03-13 13:15:50
【问题描述】:

我创建了一个发送 http 请求的 azure web 应用程序:

axios.post('http://*mypublicip*:3000/write/' + Name, {
  content: data[1]
})

同时我的电脑有一个正在运行的快速服务器:

app.listen(3000, () => console.log(`Server running on port ${port}`));

当我通过将请求发送到本地主机而不是我的 ip 在本地使用它时,我的所有功能都可以正常工作。 我还尝试将主机“0.0.0.0”添加到我的 app.listen。 我错过了什么?谢谢

【问题讨论】:

  • 您采取了哪些配置步骤来确保您机器上的端口 3000 暴露在 Internet 上?

标签: node.js express http azure-web-app-service


【解决方案1】:

此问题与您的 webapp 无关。

所以我不再测试webapp程序,你可以通过其他机器(不是局域网中的PC)访问你http://*mypublicip*:3000/write/' + Name的http请求,我的测试环境是天蓝色的vm。你会发现你的请求无法成功访问。

原因是你在cmd中找到的ipconfig中的ip应该不是你的主机ip,而是运营商分配给你的互联网ip。这个ip 被许多主机使用。简单来说,这个ip 不只是你的一台机器。

所以导致你的问题发生。建议使用内网穿透工具来实现。就是用内网穿透工具暴露你的3000端口。

为了解决您的问题,我使用了ngrok。

  1. 在本地构建项目并监控端口3000。

  1. 本地访问,查看效果。

  1. 访问虚拟机,发现失败。

  1. 安装ngrok后,虚拟机访问新地址,成功。

首先允许3000端口暴露。

在 vm 中测试,它可以工作。

【讨论】:

    猜你喜欢
    • 2019-12-26
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 2011-12-21
    相关资源
    最近更新 更多