Клиент отправил HTTP-запрос на HTTPS-сервер Docker Django Nginx

Недавно я начал изучать docker и создал приложение django, которое я докеризировал. Однако я столкнулся с ошибкой, которую не могу преодолеть. Сообщение об ошибке следующее Client sent an HTTP request to an HTTPS server.

Вот мой файл конфигурации nginx

server {

    listen 80;
    listen [::]:80;

    server_name 192.168.99.106;
    charset utf-8;

    location /static {
        alias /usr/src/app/static;
    }

    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;
    }

}

А вот мой docker-compose.yml

version: '3'

services:
  web:
    restart: always
    build: ./web
    expose:
      - "8000"
    links:
      - postgres:postgres
      - redis:redis
    volumes:
      - web-django:/usr/src/app
      - web-static:/usr/src/app/static
    env_file: .env
    environment:
      DEBUG: 'true'
    command: sh -c "python manage.py makemigrations &&
                    python manage.py migrate &&
                    usr/local/bin/gunicorn inventory.wsgi:application -w 2 -b :8000" 

  nginx:
    restart: always
    build: ./nginx/
    ports:
      - "80:80"
    volumes:
      - web-static:/www/static
      - ./certbot/www:/var/www/certbot/:ro
      - ./certbot/conf/:/etc/nginx/ssl/:ro
    links:
      - web:web

  certbot:
    image: certbot/certbot:latest
    volumes:
      - ./certbot/www/:/var/www/certbot/:rw
      - ./certbot/conf/:/etc/letsencrypt/:rw
    command: certonly --webroot -w /var/www/certbot --force-renewal --email example@gmail.com -d 192.168.99.106 --agree-tos

  postgres:
    restart: always
    image: postgres:latest
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data/
    environment:
      POSTGRES_DB: "db"
      POSTGRES_HOST_AUTH_METHOD: "trust"
      POSTGRES_PASSWORD: ${DB_PASS}

  redis:
    restart: always
    image: redis:latest
    ports:
      - "6379:6379"
    volumes:
      - redisdata:/data
volumes:
  web-django:
  web-static:
  pgdata:
  redisdata:

Используемая мной машина docker работает на порту tcp://192.168.99.106:2376

Первое, что я попытался сделать, это использовать https://, но это привело к проблеме непринятия самоподписанных сертификатов. Я пытался использовать certbot для установки сертификатов LetsEncrypt, но это невозможно на голом IP-адресе.

Вернуться на верх