在AWS Lightsail用Docker部署Django应用遇页面加载异常求助
Django部署求助:AWS Lightsail + Docker + Gunicorn + Nginx
我现在卡在AWS Lightsail上用Docker、Gunicorn和Nginx部署Django应用这事儿上了,翻了好几个教程跟着做都没成。说实话大部分相关概念我都不太懂,基本就是照着步骤瞎操作。
目前服务器内部看着好像一切正常,但网页端死活看不到结果:
- 已经按“生产环境”配置了(不确定对不对),域名解析也指向服务器了,但网页一直加载转圈,连开发用的8000端口也打不开
- Docker Compose日志里见过几次「301 5 永久重定向」的记录,但没别的有用信息
下面是我这边的关键配置文件,麻烦帮忙看看哪里出问题了:
关键配置文件
docker-compose.yml
version: '3.7' services: web: build: . environment: - ENVIRONMENT=production - SECRET_KEY=NOT IMPORTANT - DEBUG=0 - EMAIL_HOST_USER=EMAIL - EMAIL_HOST_PASSWORD=PASSWORD volumes: - .:/code - static_volume:/code/staticfiles depends_on: - db networks: - nginx_network - db_network db: image: postgres:11 env_file: - config/db/db_env networks: - db_network volumes: - db_volume:/var/lib/postgresql/data nginx: image: nginx:1.17.0 ports: - 80:80 volumes: - ./config/nginx/conf.d:/etc/nginx/conf.d - static_volume:/code/staticfiles depends_on: - web networks: - nginx_network networks: nginx_network: driver: bridge db_network: driver: bridge volumes: db_volume: static_volume:
注:原配置里build:后面漏了.,我补上了,应该是要指定当前目录构建镜像
Dockerfile
# Pull base image FROM python:3.7 # Environment variables ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 # Work directory WORKDIR /code # Dependencies COPY Pipfile Pipfile.lock /code/ RUN pip install pipenv && pipenv install --system # Copy project COPY . /code/ # expose port EXPOSE 80 # gunicorn CMD ["gunicorn", "--chdir", "my_project", "--bind", ":80", "mbdebate_project.wsgi:application"]
Nginx conf.d配置文件
upstream hello_server { server web:80; } server { listen 80; server_name mydomain.com; location / { proxy_pass http://hello_server; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off; } location /static/ { alias /code/staticfiles/; } }
我自己感觉Django本身的配置应该没什么问题,有没有大佬能给点技术指导,帮我解决这个部署的问题啊?
内容的提问来源于stack exchange,提问作者Eric Chen
相关产品推荐
相关产品推荐

