如何将 webpack 开发服务器代理选项转换为 nginx docker 容器



我正在将一个 docker 容器部署到 vm,其中包括我的 webapp(应用程序 1(。我在 port 8080 上运行的 VM 上还有另一个 docker 容器(应用程序 2(。我想代理所有以 /api 开头的 app 1 url 请求到 app 2 .

这是我的 DOCKER 文件:

FROM nginx:1.17.0
MAINTAINER **** [**@**.com](mailto:**@**.com)
COPY nginx.default /etc/nginx/sites-enabled/default
ADD dist/ /usr/share/nginx/html/

这些是我的 webpack 开发服务器设置

devServer: {
    contentBase: outDir,
    // serve index.html for all 404 (required for push-state)
    historyApiFallback: true,
    proxy: {
      '/api': {
        target: 'http://aapp-name:8080',
        pathRewrite: { '^/api': '' },
        logLevel: 'debug'
      }
    }
  }

我已将以下内容添加到nginx.default,但它似乎不起作用。

location /api {
    proxy_pass http://app-name:8080;     
}

如果要按名称访问容器,则应将它们放在同一个 docker 网络中。

  • 创建码头工人网络:docker network create <network_name>
  • docker run --network <network_name> --name app2 -d -p 8080:8080 image
  • docker run --network <network_name> --name app1 -d image
  • 通过http://app2:8080访问 App1 容器中的 App2 服务

最新更新