访问Azure网站上的nodejs https应用程序

时间:2018-04-22 16:09:04

标签: node.js azure https azure-web-sites

我在Azure上部署了我的nodejs https服务器

https.createServer(options,app).listen(8080,()=> {console.log(“收听8080”)});

从上面的代码片段可以看出,它正在侦听端口8080

我应该如何在Azure网站上访问我的服务器?

https://myapp.azurewebsites.net/ 要么 https://myapp.azurewebsites.net:8080/

2 个答案:

答案 0 :(得分:3)

在给出答案之前,以下是您应该了解的有关Azure Web App的一些重要概念。

  • Azure Web App是一个沙盒。通过互联网访问Azure Web应用程序的唯一方法是通过仅有的两个已公开的HTTP(80)和HTTPS(443)TCP端口。
  • 对于部署到Azure的Nodejs App,Azure将为您的服务器创建一个命名管道,并将请求从443端口(当您使用https时)传递给命名管道。 nodejs应用程序中的特定端口(即使您使用443)无效,将导致服务器内部错误(500)。

因此,您应该使用process.env.PORT代替8080并使用网址https://myapp.azurewebsites.net访问您的网站。 如果在日志中输出管道,则可以看到管道。

有关Azure Web App sandbox的更多详情。

此外,您可以参考此nodejs web app deploy tutorialthis app sample

答案 1 :(得分:0)

好吧,我找到了 https://docs.microsoft.com/en-gb/azure/cloud-services/cloud-services-configure-ssl-certificate-portal

似乎azure处理https

所以不需要

https.createServer(options,app).listen(8080,()=> {console.log(“收听8080”)});

只是标准

app.listen(process.env.port)

process.env.port是天蓝色提供的端口

也设置为仅使用https(即所有传入的http被重定向到https)参考

https://blogs.msdn.microsoft.com/benjaminperkins/2017/11/30/how-to-make-an-azure-app-service-https-only/