Django работает на порту 8000, но порт изображения в продакшене 80
Я сериализовал свою модель и она работает хорошо, за исключением проблемы
Это мой serializers.py
class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ("first_name", "last_name", "avatar",)
вот что я вижу в браузере, Пожалуйста, посмотрите на это, порт адресной строки и порт изображения не совпадают.
Все работает хорошо, проблема возникает, когда я запускаю проект на Docker
, используя nginx
и gunicorn
Вот мой конфиг nginx.
server {
listen 8000;
location /static {
alias /backend/staticfiles;
}
location /media {
alias /backend/media;
}
location / {
proxy_pass http://backend:8000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}
и это мой docker-compose.yml
version: '3.7'
services:
backend:
build:
context: .
volumes:
- static_data:/backend/staticfiles
- "./dist/media:/backend/media" # map to local machine
env_file: # if .env in root, we have to show .env here must
- ./.env
depends_on:
- db
proxy:
build:
context: ./proxy
volumes:
- static_data:/backend/staticfiles
- "./dist/media:/backend/media" # map to local machine
ports:
- "8000:8000"
env_file: # if .env in root, we have to show .env here must
- ./.env
depends_on:
- backend
- db
db:
image: postgres
volumes:
- database:/var/lib/postgresql/data
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
ports:
- "5432:5432"
volumes:
static_data:
database:
и это entrypoint.sh
#!/bin/sh
set -e
python manage.py migrate
gunicorn mysite.wsgi:application --bind :8000
Все работает отлично, кроме этой проблемы с портом, почему django-rest-framework
рендеринг в порту 80
так как мой сервер работает на port
8000?
вот мой models.py
class User(AbstractUser):
avatar = models.ImageField(upload_to='avatars/', null=True, blank=True)