【问题标题】:How to make Node.js app under IIS on azure VM public?如何在 Azure VM 上公开 IIS 下的 Node.js 应用程序?
【发布时间】:2017-07-09 15:15:25
【问题描述】:

我在 Azure VM 上安装了我的 Node.js 应用程序,目前它在 IIS 下运行。 一切看起来都不错,但现在我需要将其公开,可通过 www.mysite.com 访问

我注册了 mysite.com 域,但不知道如何将 VM、Node.js 应用和此域名连接在一起?

(我记得我发现了一些关于 asp.net mvc 应用程序的非常有用的文章,我也在做同样的事情,但不幸的是我再也找不到它了,我被卡住了)。

谢谢

更新: 1)以某种方式设置您的应用程序在 localhost:80 上运行

2) 防火墙设置? (不确定)

3) 在您的提供商处设置指向您的 VM 的域(通常通过 CNAME)

利润! (如果你是受虐狂:)

【问题讨论】:

  • 谢谢,但第一步还不清楚。在浏览器中输入 myvm.cloudapp.net 如何让应用程序运行?
  • 好的,我尝试了一些方法,但它不起作用。我不知道如何指定当我输入 localhost:80 时它应该显示我的应用程序?请帮忙!!!

标签: node.js azure iis


【解决方案1】:

转到您的域名托管服务商的管理面板(例如 GoDaddy、Namecheap 等)并添加一个指向您的 VM 的 A record

$ dig example.com

www.example.com.   3600     IN   CNAME   example.com.
example.com.       3600     IN   A       PUBLIC.IP.ADDR.OF.YOUR.VM

确保您使用的是reserved public IP address,因此如果您停止解除分配您的虚拟机,请确保 IP 地址保持不变。

如果您不想启动并使用 IIS 管理虚拟机(这就像购买连锁酒店只是为了洗澡),您可能需要查看 hosting your Node app on App Service

演练使用azure-cli,但如果您对 CLI 内容不满意,也可以从 Portal UI 完成所有这些操作。

您需要注意带有 Node 的 Azure 应用服务中的这个问题:不要硬编码要侦听的端口号,而是使用 process.env.PORT(它在运行时成为命名管道)。 See this answer for more.

您可以使用您的own domain with App Service

【讨论】:

  • 我真的很感谢你的幽默,但在这里有点不合适。因为我google了一整天都没有结果。由于一件小事,您的建议不起作用(我尝试过)-我无法执行在 localhost:80 上运行应用程序的第一步。最后我弄清楚是什么原因 - 我删除了默认应用程序,然后一切都被破坏了。我开始恢复 IIS,但花了几个小时,我没有耐心等待。结果,我放弃了在 IIS 下在 Azure 上运行 node.js 应用程序的想法,因为这是有史以来最愚蠢的事情。谢谢!
  • 您对此进行了过度设计。为什么不使用应用服务 (PaaS)?无需虚拟机,无需设置和管理 IIS,只需部署代码即可。请参阅我编辑的答案。
  • 我完全同意...我知道如何获得自己的域和应用程序。问题是您将如何托管它?我实际上是从这个开始的,只是创建了一个应用程序服务,在那里 FTPied 文件......它没有用。我不知道为什么。我有 500 个错误,我可以看到的日志什么也没说。我找到了“细节”,但实际上并没有。我搬到 VM 只是为了看看发生了什么,然后又失败了……然后,你猜怎么着?我用谷歌搜索,发现 Heroku 可以托管 nodejs 应用程序(免费的简单应用程序!),并且花了 2(仅 2 !!!)小时在其中放置和运行我的应用程序。一切正常!
  • BTW process.env.PORT 总是空的,我怎么依赖它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-28
  • 2017-04-11
  • 2019-11-17
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多