我正在将一个 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 服务