【发布时间】:2019-07-19 03:42:02
【问题描述】:
我当前的配置如下:我在不同的 Docker 容器上运行了两个独立的 Angular 应用程序,在不同的端口上运行,例如 4200 和 4201。我直接通过它们的端口访问它们:www.myserver.com:4200 和 www .myserver.com:4201。它们是使用以下 docker-compose 配置文件创建的:
version: '3.6'
services:
app1:
build:
context: ../app1
dockerfile: Dockerfile
command: bash -c "ng serve --host 0.0.0.0 --port 4200"
ports:
- "4200:4200"
app2:
build:
context: ../app2
dockerfile: Dockerfile
command: bash -c "ng serve --host 0.0.0.0 --port 4201"
ports:
- "4201:4201"
现在,我想设置一个 nginx 服务器以在同一个端口上为两个应用程序提供服务,例如80. 更改两个应用程序以便在不同的路线上提供服务的推荐方法是什么,例如www.myserver.com/app1 和 www.myserver.com/app2 分别?到目前为止,我已经更改了我的 docker-compose 配置文件和 nginx 的 dev.conf:
docker-compose.yml
nginx:
build:
context: ../nginx
dockerfile: Dockerfile
restart: always
ports:
- "80:80"
nginx/dev.conf
server {
listen 80;
location /app1 {
proxy_pass http://app1:4200;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
location /app2 {
proxy_pass http://app2:4201;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
是否可以按照我的要求进行操作?在内部合并 Angular 应用和路由会更好吗?
提前致谢。
更新:我最终将内容从 app2 复制到 app1 并在内部路由。如果有人想提出不同的方法,我会保留这个问题。
【问题讨论】:
标签: angular docker nginx docker-compose angular6