gpt4 book ai didi

node.js - HTTPS NodeJS 和 Heroku。强制HTTPS?

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:13 24 4
gpt4 key购买 nike

我有一个在 Heroku 上运行的 NodeJS HTTP(非 S)服务器。我配置了 SSL,它接受对 HTTPS 的请求。我使用 vanilla HTTP 服务器的原因是因为 the following :

SSL termination occurs at Heroku's load balancers; they send your app plain (non-SSL) traffic, so your app should create a non-HTTPS server." 

不幸的是,我的应用程序仍然响应普通的旧 HTTP 请求。我想强制重定向或从 HTTP 到 HTTPS 的东西。我可以用一些中间件来做到这一点:

/* At the top, with other redirect methods before other routes */
app.get('*',function(req,res,next){
if(req.headers['x-forwarded-proto']!='https')
res.redirect('https://mypreferreddomain.com'+req.url)
else
next() /* Continue to other routes if we're not redirecting */
})

但这是一个好的解决方案吗? POST 请求如何工作?如果我发布到 HTTP,是否应该被允许?

我想到的另一种 final方法是使用 Nginx 并在其中添加一个从 HTTP 到 HTTPS 的重定向。不幸的是,Heroku 不允许 Nginx 配置。

最佳答案

最好使用 app.use(function(req, res, next{/* ... */}); 来捕获其他 HTTP 方法。

关于node.js - HTTPS NodeJS 和 Heroku。强制HTTPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24643286/

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