1

I have django and angular app both as a container. it works fine when I run the two apps via nginx in different ports like below.

worker_processes 1;

events { worker_connections 1024; }

http {

  # Django config
  upstream django-api {
    ip_hash;
    server django-api:8000;
  }

  # Angular config
  upstream angular-apache2 {
    ip_hash;
    server angular-apache2:80;
  }
  
  #Angular config
  server {
    location / {
          proxy_pass http://angular-apache2/;
      }
    listen 80;
    server_name localhost;
  }


  #Django config
  server {
    location / {
          proxy_pass http://django-api/;
      }
    listen 8000;
    server_name localhost;
  }

but when I try to run in on the same port, Im getting this error message http://localhost/runtime-es2015.js net::ERR_ABORTED 404 (Not Found)

"/etc/nginx/html/runtime-es2015.js" failed (2: No such file or directory), client: 192.168.16.1, server: localhost, request: "GET /runtime-es2015.js HTTP/1.1", host: "localhost", referrer: "http://localhost/web/

worker_processes 1;

events { worker_connections 1024; }

http {

  # Django config
  upstream django-api {
    ip_hash;
    server django-api:8000;
  }

  # Angular config
  upstream angular-apache2 {
    ip_hash;
    server angular-apache2:80;
  }
  
  server {
    location /web/ {
        proxy_pass http://angular-apache2/;
    }

    location /api {
        proxy_pass http://django-api/api/v1;
    }        

    listen 80;
    server_name localhost;
  }

here is my docker-compose

version: "3"

services:

  reverse-proxy:
    build:
      context: ./nginx
    container_name: ${PROJECT_NAME}--nginx
    ports:
      - '8000:8000'
      - '80:80'
    # volumes:
    #   - ./nginx/django.conf:/etc/nginx/conf.d
    depends_on:
      - django-api
      - angular-apache2

  angular-apache2:
    build:
      context: ./angular
    container_name: ${PROJECT_NAME}--angular
    ports:
      - '80'
    volumes:
      - ./angular/dist/ng7:/var/www/html
      - ./config/apache/angular-000-default.conf:/etc/apache2/sites-available/000-default.conf

  django-api:
    build:
      context: ./django
    command: gunicorn data_tracker.wsgi:application --bind 0.0.0.0:8000
    #command: systemctl restart apache2
    container_name: ${PROJECT_NAME}--django
    ports:
      - '8000'
    volumes:
      - ./django:/django
      - ./config/apache/django-000-default.conf:/etc/apache2/sites-available/000-default.conf
  
3

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.