我无法将 Node.js 应用部署为 Azure 网站以监听适当的 SSL 端口(在 Azure 环境中)。
在我可以控制端口的任何其他环境中提供 SSL 请求都没有问题并且工作正常。我不认为这是应用程序代码的问题(使用 Express,仅供引用)。
Azure 网站似乎将端口 80 流量从负载均衡器转发到在 process.env.PORT
变量中设置的任何可用端口。
尽管已成功将给定网站的证书加载到 Azure 门户并配置其绑定(bind),但我在 process.env
中没有看到任何与 SSL 流量相关的等效内容。
我的问题是:如何配置 Azure 以吐出端口 443 上的流量所需的文件描述符?
我已经阅读了一些有关如何在云服务中配置工作线程的内容 here ,但它似乎不适用于网站。
仅供引用,当我尝试监听 443
或 process.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)
最佳答案
我假设您已阅读 http://www.windowsazure.com/en-us/develop/net/common-tasks/enable-ssl/
如果我理解正确的话,Azure 将为你完成 https 终止。您的应用/服务仍然获得 http 流量。
无论如何,您仍然需要监听process.env.PORT
。总是。并且总是会在那里获得 http 流量(而不是 https)。如果原始客户端使用端口 80,Azure 只会向您传递。如果客户端使用 443,Azure 将终止 https 并向您打开 http 请求。
关于node.js - 使用 Node.js 的 Azure 网站的 SSL 端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19106899/