gpt4 book ai didi

python - 在django开发环境下使用Docker、Gunicorn、Nginx却只能看到nginx欢迎页面?

转载 作者:行者123 更新时间:2023-11-28 17:15:19 24 4
gpt4 key购买 nike

我在django开发环境中使用了Docker、Gunicorn、Nginx,但是只能看到nginx的欢迎页面。

我的 docker 文件:

Django :

FROM python:3.5

ENV PYTHONUNBUFFERED 1

RUN groupadd -r django \
&& useradd -r -g django django

COPY ./requirements.txt /requirements.txt
RUN pip install --no-cache-dir -r /requirements.txt \
&& rm -rf /requirements.txt

COPY ./compose/django/gunicorn.sh /
RUN sed -i 's/\r//' /gunicorn.sh \
&& chmod +x /gunicorn.sh \
&& chown django /gunicorn.sh

COPY . /app

RUN chown -R django /app

RUN mkdir /static
RUN chown -R django /static

USER django

WORKDIR /app

nginx:

FROM nginx:latest
ADD nginx.conf /etc/nginx/sites-enabled/django_blog.conf

gunicorn.sh:

#!/bin/sh
python /app/manage.py collectstatic --noinput
/usr/local/bin/gunicorn blogproject.wsgi -w 4 -b 127.0.0.1:8000 --chdir=/app

nginx.conf:

server {
charset utf-8;
listen 80 default_server;

location /static {
alias /app/static;
}

location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8000;
}
}

docker-compose.yml:

version: '3'

services:
django:
build:
context: .
dockerfile: ./compose/django/Dockerfile
command: /gunicorn.sh

nginx:
build: ./compose/nginx
depends_on:
- django

ports:
- "80:80"

我运行的命令:

docker-compose 构建

docker-compose up

Nginx 似乎没有将请求传递给 gunicorn?


更新:

根据@Robert 的建议,一切正常。但是,由于静态文件在 django 容器中,所以我不知道如何让 nginx 托管它们?我尝试根据 Volume configuration reference 设置音量像这样:

version: '3'

services:
django:
build:
context: .
dockerfile: ./compose/django/Dockerfile
volumes:
- static-volume:/app/static
command: /gunicorn.sh

nginx:
build: ./compose/nginx
volumes:
- static-volume:/app/static
depends_on:
- django

ports:
- "0.0.0.0:80:80"

volumes:
static-volume:

但是好像不行?我应该如何让 nginx 访问 django 容器中的静态文件?谢谢!

最佳答案

在 nginx.conf 中正确指向 django:

proxy_pass http://django:8000;

感谢 docker 网络。

而且,我建议您覆盖默认的 nginx conf。所以改变这个:

ADD nginx.conf /etc/nginx/sites-enabled/django_blog.conf

对此:

ADD nginx.conf /etc/nginx/conf.d/default.conf

关于python - 在django开发环境下使用Docker、Gunicorn、Nginx却只能看到nginx欢迎页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44567967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com