Home  >  Q&A  >  body text

python - When using Docker + Gunicorn + Nginx in the development environment, only the Niginx welcome interface can be seen

Use Docker Gunicorn Nginx to run Django in the development environment. After the server is started, you can only see the Nginx welcome interface.

Dockerfile is as follows:

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 configuration:

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"

Run command:
docker-compose build
docker-compose up

It seems that Nginx does not forward the request to Gunicorn? Please give me some advice!

滿天的星座滿天的星座2705 days ago1015

reply all(1)I'll reply

  • 滿天的星座

    滿天的星座2017-06-16 09:21:02

    Please enter the nginx container to see the location of the configuration file

    reply
    0
  • Cancelreply