Home > Mobile >  Incorrect redirect of NGINX with Docker
Incorrect redirect of NGINX with Docker

Time:11-27

I'm building my first project with Django, NGINX and Docker. Below the nginx.conf:

upstream project {
    server website:8000;
}
server {
    listen 80;
    server_name MY-DOMAIN;
    location / {
        proxy_pass http://project;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
        client_max_body_size 4G;
    }
    location /static/ {
        alias /app/static-folder/;
    }
    location /media/ {
        alias /app/media-folder/;
    }
}

And the docker-compose:

version: '3.7'

services:
  website:
    container_name: web_project
    image: project/django
    build: ./djangodocker
    restart: always
    env_file: prod.env
    command: sh -c "cd djangodocker/ &&
                    gunicorn djangodocker.wsgi:application --bind 0.0.0.0:8000"
    volumes:
      - static-folder:/app/static-folder
      - media-folder:/app/media-folder
    expose:
      - 8000

  nginx:
    container_name: nginx_web_project
    image: project/nginx
    build: ./nginx
    volumes:
      - static-folder:/app/static-folder
      - media-folder:/app/media-folder
    ports:
      - 8000:80
    depends_on:
      - website

volumes:
  static-folder:
  media-folder:

I can build the image but I can't see the website into the correct url. I see the website at MY-DOMAIN:8000 instead of MY-DOMAIN and this is my problem.

CodePudding user response:

You map the nginx port to port 8000 on the line

- 8000:80

in your docker-compose file. Change that to

- 80:80

That way, nginx listens on port 80 on the host machine and you don't need to specify the port number.

  • Related