gpt4 book ai didi

node.js - 在 Heroku 上为 Node.js 创建 http 或 https 服务器

转载 作者:可可西里 更新时间:2023-11-01 17:24:20 26 4
gpt4 key购买 nike

我不知道是否应该为托管在 Heroku 上的 node.js 创建 HTTP 或 HTTPS 服务器。显然,付费 Heroku 应用程序现在默认处理 SSL 并通过 HTTPS 接收。当应用程序收到 HTTPS 请求时,Heroku 负载平衡器会将请求转换为 HTTP,然后将请求发送到您的应用程序。

看来 Heroku 会为您处理 HTTPS/SSL,我们所要做的就是设置一个 HTTP 应用程序。

如果请求是从客户端以 HTTP 方式发送的,则应添加以下代码以确保对发送的数据进行加密。

/* Redirect http to https */
app.get('*', function(req,res,next) {
if(req.headers['x-forwarded-proto'] != 'https' && process.env.NODE_ENV === 'production')
res.redirect('https://'+req.hostname+req.url)
else
next() /* Continue to other routes if we're not redirecting */
});

我认为我们应该通过 https 使用 http 应用程序是因为 heroku 处理加密吗?

最佳答案

Heroku 提供 SSL 证书并为您配置它,以便用户可以访问您网站的 https 版本。

您答案中的代码所做的是将用户从 http 转发到 https,本质上是强制所有用户使用您网站的 https 版本,这是一件好事。

那么代码的作用是:

1) 检查用户是否登陆了http协议(protocol)的页面

2) 如果为真,将用户重定向到相同地址的https版本

3) 用户继续浏览https中的站点

因此当 Heroku 为您处理 ssl 时,您仍然需要通过重定向 http 用户来确保所有用户都使用 SSL。

关于node.js - 在 Heroku 上为 Node.js 创建 http 或 https 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49286046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com