我正在使用Nginx作为代理对Django应用程序进行docker化。 我的问题是数据库在托管docker的同一台计算机上运行(未进行dockerized)。 因此,我必须为django应用程序使用network_mode:“ host”,以便使用本地主机连接到数据库。 另一方面,如果我这样做,nginx图像将无法再访问Django应用并给出
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/;
}
}
我该怎么办