繁体   English   中英

Nginx不会在ubuntu的docker-compose中转发到django应用程序,但都可以在Mac的docker-machine中工作

[英]nginx doesn't forward to django app in docker-compose in ubuntu but it all works in docker-machine in Mac

我有一个Django后端,我在其中使用docker-compose进行部署。 此django应用程序在前面使用nginx代理。

当我将其部署在docker-machine中并转到docker-machine ip时,我被正确重定向到django站点。

但是,当我将其部署到docker上的ubuntu机器中时,当我转到nginx容器的ip时,将获得默认的nginx页面,但不会重定向到django应用程序。 Nginx容器也不会记录任何错误。 所有服务都在docker中运行,没有任何错误。

我正在共享Nginx的配置文件,下面是docker-compose文件

nginx.conf

server {
    listen 80;
    server_name omaha;
    listen 443 ssl;
    ssl_certificate /etc/nginx/ssl/ssl.crt;
    ssl_certificate_key /etc/nginx/ssl/ssl.key;

    charset utf-8;
    client_max_body_size 200M;

    location / {
        proxy_pass http://web:8000;
        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-Proto $scheme;
    }

}

nginx docker文件

FROM nginx
COPY conf/nginx.conf /etc/nginx/conf.d/nginx.conf
COPY certs/ /etc/nginx/ssl

泊坞窗,compose.yml

version: '2'

services:
    nginx:
      restart: always
      build:
        context: ./nginx/
      ports:
        - "80:80"
        - "443:443"
      volumes_from:
        - web

    web:
      restart: always
      build:
        context: ./web
      depends_on:
        - web_ffmpeg
        - postgres
        - redis
        - rabbitmq
      expose:
        - "8000"
      environment:
        - DEBUG=True
      command: /usr/local/bin/gunicorn wsgi:application -w 2 -b :8000


    web_ffmpeg:
      restart: always
      build:
        context: ./web
      depends_on:
        - postgres
        - redis
        - rabbitmq
      expose:
        - "8000"
      command: /usr/local/bin/celery -A trigger worker -l info


    postgres:
      restart: always
      image: postgres:latest
      expose:
        - "5432"
      volumes:
        - pgdata:/var/lib/postgresql/data/


    redis:
      restart: always
      image: redis:latest
      expose:
        - "6379"
      volumes:
        - redisdata:/data



    rabbitmq:
      restart: always
      image: rabbitmq:3-management
      environment:
        RABBITMQ_DEFAULT_USER: 'adminuser'
        RABBITMQ_DEFAULT_PASS: 'xxxxxxxxx'
        RABBITMQ_DEFAULT_VHOST: 'myvhost'
      ports:
        - "15672:15672"
      expose:
        - "5672"


volumes:
    elk-data:
    pgdata:
    redisdata:
    web-data:
    web-ffmpeg-data:

软件版本:

我什至在两个工作站之间匹配了所有版本。 版本是

  • 码头工人1.12.5,1.13.0
  • docker-compose 1.11.0,1.11.1

我尝试了所有版本的组合,仍然存在相同的问题。

在docker机器中和直接在ubuntu机器上使用docker-compose有什么不同。

问题出在gunicorn配置中。

我没有将其绑定到0.0.0.0:8000,而是将它绑定到:8000。 这就是问题所在。 我仍然不知道为什么它可以在机器上工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM