为Nginx和Django组合网络主机和网桥
我正在对接一个Django应用程序,同时使用Nginx作为代理。 我的问题是,DB正在dockers所在的同一台机器上运行(非停靠)。 因此,我必须对django应用程序使用network_模式:“host”,以便使用localhost连接到db。 另一方面,如果我这样做,nginx映像将无法再访问Django应用程序,并提供为Nginx和Django组合网络主机和网桥,django,docker,nginx,docker-compose,Django,Docker,Nginx,Docker Compose,我正在对接一个Django应用程序,同时使用Nginx作为代理。 我的问题是,DB正在dockers所在的同一台机器上运行(非停靠)。 因此,我必须对django应用程序使用network_模式:“host”,以便使用localhost连接到db。 另一方面,如果我这样做,nginx映像将无法再访问Django应用程序,并提供 nginx: [emerg] host not found in upstream 我的docker compose文件如下所示: version: '3.4' se
nginx: [emerg] host not found in upstream
我的docker compose文件如下所示:
version: '3.4'
services:
web:
build: .
command: sh /start.sh
networks:
- db_network
- web_network
volumes:
- static_volume:/allarmi/src/AllarmiWs/static
expose:
- 8001
environment:
- DEBUG=0
- DJANGO_SETTINGS_MODULE=AllarmiWs.settings.deploy
nginx:
build: ./nginx
ports:
- 8000:80
depends_on:
- web
volumes:
- static_volume:/allarmi/src/AllarmiWs/static
networks:
- web_network
volumes:
static_volume:
networks:
web_network:
driver: bridge
db_network:
driver: host
这是我的nginx.conf文件
upstream allarmi {
server web:8001;
}
server {
listen 80;
location / {
proxy_pass http://allarmi;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
alias /allarmi/src/AllarmiWs/static/;
}
}
我该怎么做呢这不是DB的问题。请显示您的nginx配置。像往常一样,它放在那里的某个地方:
/etc/nginc/conf/default.conf
在另一边,如果我这样做,nginx映像将无法再访问Django应用程序,并提供
-你确定nginx可以连接而不将Django和DB放在同一台主机上吗?网络模式:主机
是一种黑客行为。您几乎总是希望使用标准的Docker容器间网络,并将数据库的主机名配置为环境变量。数据库位于同一台机器上,因此可以通过localhost访问。当然,只有在网络模式下:主机启用。如果我启用它,nginx将无法访问我的Django应用程序。这不是DB的问题。请显示您的nginx配置。像往常一样,它放在那里的某个地方:/etc/nginc/conf/default.conf
在另一边,如果我这样做,nginx映像将无法再访问Django应用程序,并提供
-你确定nginx可以连接而不将Django和DB放在同一台主机上吗?网络模式:主机
是一种黑客行为。您几乎总是希望使用标准的Docker容器间网络,并将数据库的主机名配置为环境变量。数据库位于同一台机器上,因此可以通过localhost访问。当然,只有在网络模式下:主机启用。如果我启用它,nginx将无法访问我的Django应用程序