1

我有两台服务器在 Docker 上运行。localhost:3000一种是在后端运行时反应前端localhost:9000。当我去localhost:3000/api时,我想进入后端的索引页面,即localhost:9000.

在通过 create-react-app 创建的 myApp 文件夹中创建 setupProxy.js 文件:

const proxy = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(proxy('/api', { target: 'http://backend:9000' }));
};

当我去 时localhost:3000/api,我会被发送到localhost:9000/api而不是localhost:9000

4

1 回答 1

3

http-proxy-middleware有一个pathRewrite选项,请参阅文档

在您的特定情况下:

const proxy = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(proxy('/api', {
    target: 'http://backend:9000',
    pathRewrite: {'^/api' : ''}
  }));
};

这通常应该重写localhost:3000/api/endpointlocalhost:9000/endpoint.

请注意,还有一个router选项可用于更量身定制的行为。

于 2019-02-16T16:41:45.013 回答