为什么Nginx在端口8000而不是80服务我的Django应用程序?

fnatzsnv  于 2023-01-21  发布在  Go
关注(0)|答案(1)|浏览(181)

我已经创建了一个应用程序使用django。我运行这个应用程序现在使用django组成建立django组成了。
当我打开http://0.0.0.0:8000时,它会附带静态文件。当我打开http://0.0.0.0:80时,它不会显示静态文件

    • 坞站组合**
version: '3.7'

services:
  django_gunicorn:
    volumes:
      - static:/static
    env_file:
      - .env
    build:
      context: .
    ports:
      - "8000:8000"
  nginx:
    build: ./nginx
    volumes:
      - static:/static
    ports:
      - "80:80"
    depends_on:
      - django_gunicorn

volumes:
  static:

Docker文件

FROM python:3.10.0-alpine

RUN pip install --upgrade pip

COPY ./requirements.txt .
RUN pip install -r requirements.txt

COPY ./video_app /app

WORKDIR /app

COPY ./entrypoint.sh /
ENTRYPOINT ["sh", "/entrypoint.sh"]

Entry.sh

#!/bin/sh
python manage.py migrate --no-input
python manage.py collectstatic --no-input

DJANGO_SUPERUSER_PASSWORD=$SUPER_USER_PASSWORD python manage.py createsuperuser --username $SUPER_USER_NAME --email $SUPER_USER_EMAIL --noinput

gunicorn video_app.wsgi:application --bind 0.0.0.0:8000

NGINX Docker文件

FROM nginx:1.19.0-alpine

COPY ./default.conf /etc/nginx/conf.d/default.conf

Default.conf

upstream django {
    server django_gunicorn:8000;
}

server {
    listen 80;

    location / {
        proxy_pass http://django;
    }

    location /static/ {
        alias /static/;
    }
}

enter image description hereenter image description here
你能帮我解决这个问题吗

polhcujo

polhcujo1#

默认的.conf文件只列出Django的docker地址,但没有列出端口,所以默认为端口80。

server {
    listen 80;

    location / {
        proxy_pass http://django:8000;
    }

    location /static/ {
        alias /static/;
    }
}

相关问题