Dockerized Nginx,域无法正常工作

时间:2018-10-19 08:17:36

标签: django docker nginx

我设法对django应用进行了docker化。使用docker-compose我可以运行django,postgresql和nginx,但是Nginx不能很好地工作。我可以访问我的应用程序,并且可以正常运行,但是当我尝试连接到我的域时,始终可以在端口8000上运行。我想在testapp.org上运行我的应用程序,但我只能通过testapp.org访问。我该如何解决?我需要在配置文件中使用哪些更改?我错过了什么吗?

docker-compose:

version: '3'

services:
  db:
    container_name: db.postgres
    image: postgres:10
    environment:
      - POSTGRES_DB=testdb
      - POSTGRES_USER=test
      - POSTGRES_PASSWORD=password
    ports:
      - '5432:5432'
    volumes:
      - ./pgdata:/var/lib/postgresql/data
  web:
    restart: always
    build: .
    image: djangoapp
    command: bash -c "python manage.py makemigrations && python manage.py migrate && gunicorn fatihkocnet.wsgi -b 0.0.0.0:8000"
    depends_on:
      - db
    volumes:
      - ./fatihkocnet:/fatihkocnet
      - ./config/nginx:/etc/nginx/conf.d
    expose:
      - "8000"

  nginx:
    restart: always
    image: nginx:latest
    ports:
      - "8000:8000"
    volumes:
      - ./fatihkocnet:/fatihkocnet
      - ./config/nginx:/etc/nginx/conf.d
    depends_on:
      - web

nginx / test.conf

upstream web {
  ip_hash;
  server web:8000;
}

# portal
server {
  location / {
  proxy_pass http://web;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $host;
  proxy_redirect off;
    }
  listen 8000;
  server_name testapp.org;
}

1 个答案:

答案 0 :(得分:0)

您需要将Docker Hosts端口(如果要在HTTP端口上托管服务,则映射为80)到您的ngnix docker服务。

例如
      端口:       -“ 80:8000”

您需要将HOST服务器IP映射到DNS到您的testapp.org地址。