我试图在NodeJS中创建反向代理。但是我一直在运行这个问题,因为我只能在同一个端口(443)上提供一组证书/密钥对,即使我想服务多个域。我已完成研究并继续遇到同样的路障:
如果有人可以向我展示使用NodeJS和 https.createServer 或 node-http-从同一端口号(443)使用自己的证书提供多个安全域的示例代理我很感激你。
答案 0 :(得分:3)
Redbird实际上非常优雅,也不太难配置。
答案 1 :(得分:2)
让我通过域头
动态地为SSL证书服务
没有域头,所以我猜你的意思是HTTP请求中的Host头。 但是,这不起作用,因为
以前,您需要为每个SSL证书设置一个IP地址。当前的浏览器确实支持SNI(服务器名称指示),它发送已经在SSL层内的预期目标主机。看起来node.js支持这一点,寻找SNICallback
。
但是,要注意那里仍然有足够的库,要么根本不支持客户端的SNI,要么显然需要使用它。但是,只要您只想支持浏览器,这应该没问题。
答案 2 :(得分:2)
Bouncy是一个很好的图书馆,可以提供an example。
正如Steffen Ullrich所说,它将取决于浏览器对它的支持
答案 3 :(得分:2)
以下是您可能正在考虑的解决方案, 我发现它对我的实现非常有用 虽然你需要做大量的自定义来处理域
node-http-rev代理: https://github.com/nodejitsu/node-http-proxy
答案 4 :(得分:1)
如何在不同的端口上创建SSL服务器,并使用node-http-proxy作为443上的服务器来根据域中继请求。
答案 5 :(得分:0)
你声明你不想使用nginx,我不明白为什么。您可以为nginx设置多个位置。让他们每个人在端口443上听不同的主机名和所有主机名。 为您的nodejs服务器提供所有代理服务器。根据我的理解,这符合您的所有要求,并且是最先进的。