【问题标题】:How to force the nodejs on dotcloud to use only HTTPS?如何强制 dotcloud 上的 nodejs 仅使用 HTTPS?
【发布时间】:2013-01-28 09:56:04
【问题描述】:

默认情况下,dotcloud 允许我通过 HTTPS 访问我的节点实例,但我应该只允许 HTTPS 并将每个 HTTP 请求转发到 HTTPS。

在dotcloud平台上应该怎么做?

提前致谢!

【问题讨论】:

    标签: node.js https dotcloud


    【解决方案1】:

    dotCloud 提供了一个额外的标头:x-forwarded-proto,它可以让您知道代理源。

    在您的代码中,您可以使用 req.headers['x-forwarded-proto'] (是 'http' 或 'https' )来了解来源。当它是 http 时,您可以重定向到 https。

    【讨论】:

      【解决方案2】:

      它应该与托管在其他地方的任何其他 node.js 应用程序相同。

      您是否尝试过这些答案中的解决方案?

      How to force SSL / https in Express.js

      Automatic HTTPS connection/redirect with node.js/express

      【讨论】:

        【解决方案3】:

        有效! 谢谢大家!

        connectApp.use(function(req, res, next){
            if( req.headers['x-forwarded-proto'] && req.headers['x-forwarded-proto'] == "http" )
                res.redirect( 'https://' + global.config.server.address );
            else
                next();
        });
        

        【讨论】:

          猜你喜欢
          • 2014-08-29
          • 1970-01-01
          • 2015-07-30
          • 2022-06-24
          • 1970-01-01
          • 2012-05-29
          • 2018-06-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多