Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是不是;heroku local“;提供HTTPS代理?_Heroku_Reverse Proxy_Heroku Cli - Fatal编程技术网

是不是;heroku local“;提供HTTPS代理?

是不是;heroku local“;提供HTTPS代理?,heroku,reverse-proxy,heroku-cli,Heroku,Reverse Proxy,Heroku Cli,我一直在Heroku上玩一个nodejs应用程序,使用Heroku的程序可以很容易地设置HTTPS,它可以管理证书和传入的请求,因此我可以查看它是通过HTTP还是HTTPS 我在本地开发时遇到了一些麻烦,因为我的本地机器没有添加这些头文件,而确定我是否本地的逻辑在我的整个应用程序中泄漏。在本地运行时,我最终使用node的http代理库来包装我的应用程序,即使添加我的应用程序正在使用的X头,这也非常有效 if (IN_DEVELOPMENT) { const proxiedPort = 9

我一直在Heroku上玩一个nodejs应用程序,使用Heroku的程序可以很容易地设置HTTPS,它可以管理证书和传入的请求,因此我可以查看它是通过HTTP还是HTTPS

我在本地开发时遇到了一些麻烦,因为我的本地机器没有添加这些头文件,而确定我是否本地的逻辑在我的整个应用程序中泄漏。在本地运行时,我最终使用node的http代理库来包装我的应用程序,即使添加我的应用程序正在使用的X头,这也非常有效

if (IN_DEVELOPMENT) {
    const proxiedPort = 9090; // don't hit this directly
    startServer(proxiedPort);

    const httpProxy = require('http-proxy')

    httpProxy.createServer({
        target: {
            host: 'localhost',
            port: proxiedPort
        },
        ssl: {
            key: fs.readFileSync('./dummy/key.pem', 'utf8'),
            cert: fs.readFileSync('./dummy/cert.pem', 'utf8')
        },
        xfwd: true // add X-Forward-* headers as Heroku does
    }).listen(EXTERNAL_PORT);
} else {
   startServer(EXTERNAL_PORT);
}
在做了更多的开发之后,我听说heroku local命令在本地运行,我认为我是个白痴,因为我浪费时间设置代理,但是经过一些测试,它只是使用Procfile运行我的应用程序,我仍然需要在本地运行这个代理


heroku CLI是否内置了用于处理HTTPS代理的工作流

不,
heroku local
不会这样做。为什么要在本地使用HTTPS?它使两个环境之间的代码更加相似。例如,需要安全的端点不必同时检查它们是否处于开发模式。端点不应该关心它们是否通过HTTPS访问。在其他地方实施它,例如作为中间件的应用程序范围。在生产中将所有HTTP请求重定向到HTTPS,在开发中只使用HTTP。