3

我很难将 node.js 应用程序部署为 Azure 网站以侦听 SSL 的适当端口(在 Azure 环境中)。

在我可以控制端口的任何其他环境中提供 SSL 请求都没有问题并且工作正常。我不认为这是应用程序代码的问题(使用 Express,仅供参考)。

Azure 网站似乎将端口 80 流量从负载均衡器转发到process.env.PORT变量中设置的任何可用端口。

process.env尽管已成功将证书加载到给定网站的 Azure 门户并配置了其绑定,但我在 SSL 流量中没有看到任何相关的等效项。

我的问题是:如何配置 Azure 以在端口 443 上为流量吐出必要的文件描述符?

我在这里阅读了一些关于如何在云服务中配置工作人员的信息,但它似乎不适用于网站。

作为参考,当我尝试收听443orprocess.env.PORT时,我收到以下错误:

Application has thrown an uncaught exception and is terminated:
Error: listen EACCES
    at errnoException (net.js:901:11)
    at Server._listen2 (net.js:1039:14)
    at listen (net.js:1061:10)
    at Server.listen (net.js:1127:5)
4

1 回答 1

8

我假设您已阅读http://www.windowsazure.com/en-us/develop/net/common-tasks/enable-ssl/ ‎</p>

如果我理解正确,Azure 将为您完成 https 终止。您的应用/服务仍会获得 http 流量。

无论如何,你仍然需要听process.env.PORT。总是。并且总是会在那里获得http流量(不是https)。如果原始客户端使用端口 80,Azure 只会对您进行直通。如果客户端使用 443,Azure 将终止 https 并向您打开一个 http 请求。

于 2013-10-01T03:47:23.827 回答