如何使Node.js代理我对https的请求?

时间:2019-05-15 14:24:28

标签: node.js https proxy

我需要调用该nodejs并带有将其代理到另一台服务器的请求,因此我可以从前端调用我的nodejs,并将该调用定向到另一台服务器。

当前的代码对于正常的http调用非常有效,但是当我尝试使用https时,它只会失败

因此从前端开始,我将创建并进行ajax调用,如下所示:

/ rest / somestuff ...

然后,nodejs将使用代理请求捕获“ / rest”并将其转换为调用我的真实后端服务器。

var express = require('express'),
    proxy   = require('http-proxy'),
    app     = express(express.logger()),
    port    = process.env.PORT || 10003,
    proxyHost = process.env.PROXY_HOST || 'https://myserver.com',
    proxyPort = process.env.PROXY_PORT || '443',
    httpProxy = new proxy.RoutingProxy();


app.configure(function(){
    app.use(express.methodOverride());
    app.use(express.static(__dirname + '/dist',  { maxAge: 600000 }));
    app.use(express.errorHandler({
        dumpExceptions: true,
        showStack: true
    }));
    app.use(app.router);

    app.use(function(req, res, next){
        if (req.url.match(/\/rest\/(.*)/)) {
            req.headers.host = proxyHost;
            req.url = '/' + req.url.split('/').slice(2).join('/');
            httpProxy.proxyRequest(req, res, {
                host: proxyHost,
                port: proxyPort
            });
        } else {
            next();
        }
    });

body buffering
    app.use(express.bodyParser());
});

app.listen(port);

我只想知道如何使用https进行相同操作。希望这只是一件小事,需要改变:-)

我希望有人可以帮助我吗?

0 个答案:

没有答案