我有一个使用sites framework的网站,基本上有两个不同的域为同一个Django项目服务。在生产中,这是通过Docker容器(包括nginx服务器)提供的。我理想地要做的是从一个Docker容器为两个站点提供服务。这可能吗?这些网站共享相同的数据库,所以这没问题,但是我无法弄清楚的是如何使用相同的端口将另一个“ Web”实例添加到相同的docker容器中(可能是不可能的)。还有其他方法吗?
在同一服务器上启动两个docker容器也可以,但是同样,我必须使用导致冲突的相同端口。
仅供参考,这是docker-compose文件:
version: '3'
services:
nginx:
image: nginx:latest
ports:
- 80:80
volumes:
- ./src:/src
- ./config/nginx:/etc/nginx/conf.d
depends_on:
- web
web:
build: .
depends_on:
- db
volumes:
- ./src:/src
expose:
- 80
db:
image: postgres:latest
答案 0 :(得分:1)
使用Django在端口80上侦听ex来运行2个容器。在各自的容器中。将主机端口8081和8082分别映射到容器端口80。将nginx配置为侦听端口80,并具有两个服务器块,使用并基于服务器块中的服务器名称将其重定向到任一域名。或使用上游指令将两个服务器块直接重定向到各自的容器来配置nginx。