使用反向代理服务公共文件

问题描述 投票:2回答:1

见Z.8.9.1,Happy 16.6.2,H2O2 5.2.0

有一个reverse proxy路由使用外部API。

  {
    method: '*',
    path: '/api/v2/{param*}',
    handler: {
      proxy: {
        host: 'host.net',
        port: 8100,
        protocol: 'http',
        passThrough: true,
        localStatePassThrough: true
      }   
    }   
  } 

我需要在同一个Node.js服务器上提供AngularJS UI。添加以下路线。

  {
    method: 'GET',
    path: '/{param*}',
    handler: {
      directory: {
        path: 'public'
      }   
    }   
  }

现在我看到UI。但我无法再从外部API获取数据

curl -XGET localhost:8001/api/v2/birds
{"statusCode":404,"error":"Not Found","message":"Not Found"}

如何在同一个Node.js服务器上同时提供UI和反向代理?

node.js hapijs
1个回答
2
投票

我通过使反向代理路由更具体来使其工作。现在我有三个反向代理路由而不是一个。

  {
    method: 'GET',
    path: '/api/v2/{param*}',
    handler: {
      proxy: {
        host: 'host.net',
        port: 8100,
        protocol: 'http',
        passThrough: true,
        localStatePassThrough: true
      }   
    }   
  },
  {
    method: 'POST',
    path: '/api/v2/{param*}',
    handler: {
      proxy: {
        host: 'host.net',
        port: 8100,
        protocol: 'http',
        passThrough: true,
        localStatePassThrough: true
      }   
    }   
  },
  {
    method: 'PUT',
    path: '/api/v2/{param*}',
    handler: {
      proxy: {
        host: 'host.net',
        port: 8100,
        protocol: 'http',
        passThrough: true,
        localStatePassThrough: true
      }   
    }   
  }