1

以下の状況を処理するために、単純な HTTPS サーバーをセットアップしました。

  1. https://localhost:5000/ディレクトリに一致するファイルがあるへのリクエストは、 経由で処理されconnect.static(__dirname)ます。これは、私の index.html や CSS ファイルなどのすべてでうまく機能し、必要に応じて正確に機能しています。

  2. へのリクエストは にhttps://localhost:5000/apiリダイレクトする必要がありhttps://subdomain.mydomain.com:443/apiます。

プロキシは HTTPS 経由ですべてを適切に転送しており、SSL ハンドシェイク部分は期待どおりに機能しているようです。問題は、API がサブドメインを使用して、接続するデータベースと返すデータを決定することです。だから、私のAPIはリクエストを見る

https://localhost:5000/api/something

それ以外の

https://subdomain.mydomain.com/api/something

サブドメインを提供する必要があるというエラーがスローされます。

プロキシを実行するときに、ノード プロキシにドメイン/サブドメインを転送 (または使用) するように指示するにはどうすればよいですか?

これが私のコードです:

var fs = require('fs');
var connect = require('connect'),
    https = require('https'),
    httpProxy = require('http-proxy'),
    options = {
      key: fs.readFileSync('key.pem'),
      cert: fs.readFileSync('cert.pem')
    },
    endpoint = {
        host: 'subdomain.mydomain.com',
        port: 443,
        prefix: '/api',
        target: { https: true }
    };

var proxy = new httpProxy.RoutingProxy();
var app = connect()
    .use(connect.logger('dev'))
    .use(function(req, res, next) {
        if (req.url.indexOf(endpoint.prefix) === 0) {
            proxy.proxyRequest(req, res, endpoint); 
        } else {
            next();
        }   
    })  
    .use(connect.static(__dirname));

https.createServer(options, app).listen(5000);
console.log('Listening on port 5000');
4

1 に答える 1