为Nginx和Django组合网络主机和网桥

时间:2019-08-09 14:52:52

标签: django docker nginx docker-compose

我正在使用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/;
    }

}

我该怎么办

0 个答案:

没有答案