使用反向代理服务 public 个文件
Serve public files with reverse proxy
Node.js 8.9.1, hapi 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 服务器上为 AngulaJS 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 和反向代理服务?
我通过使反向代理路由更具体来使其工作。现在我有三个反向代理路由,而不是一个。
{
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
}
}
}
Node.js 8.9.1, hapi 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 服务器上为 AngulaJS 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 和反向代理服务?
我通过使反向代理路由更具体来使其工作。现在我有三个反向代理路由,而不是一个。
{
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
}
}
}