我无法知道我是否应该为Heroku上托管的node.js创建HTTP或HTTPS服务器。显然,付费的Heroku应用程序现在可以处理SSL并默认通过HTTPS接收。当应用收到HTTPS请求时,Heroku负载均衡器会将请求转换为HTTP,然后将请求发送到您的应用。
所以似乎Heroku为您处理HTTPS / SSL,我们所要做的就是设置一个HTTP应用程序。
如果请求是作为HTTP从客户端发送的,则应添加以下代码以确保对发送的数据进行加密。
Exception calling "set_InnerXml" with "1" argument(s): "Unexpected end of file has occurred. Line 1, position 7."
At line:22 char:25
+ $oldval.set_InnerXML($value)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
我错误地说我们应该使用http应用程序覆盖https,因为heroku处理加密?
答案 0 :(得分:0)
Heroku提供SSL证书并为您配置,以便用户可以转到您网站的https
版本。
您的答案中的代码是将用户从http转发到https,从根本上强迫所有用户使用您网站的https版本,这是一件好事。
所以代码的作用是:
1)检查用户是否登陆了具有http协议的页面
2)如果为true,则将用户重定向到同一地址的https版本
3)用户继续浏览https
中的网站因此,当Heroku为您处理ssl时,您仍需要确保所有用户通过重定向http用户来使用SSL。