Heim  >  Fragen und Antworten  >  Hauptteil

python – Bei der Verwendung von Docker + Gunicorn + Nginx in der Entwicklungsumgebung ist nur die Niginx-Willkommensschnittstelle sichtbar

Verwenden Sie Docker + Gunicorn + Nginx, um Django in der Entwicklungsumgebung auszuführen. Nach dem Serverstart wird nur die Nginx-Willkommensoberfläche angezeigt.

Dockerfile lautet wie folgt:

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

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"

Befehl ausführen:
docker-compose build
docker-compose up

Es scheint, dass Nginx die Anfrage nicht an Gunicorn weiterleitet? Bitte gebt mir einen Rat!

滿天的星座滿天的星座2705 Tage vor1010

Antworte allen(1)Ich werde antworten

  • 滿天的星座

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

    请进入nginx容器看清楚配置文件的位置

    Antwort
    0
  • StornierenAntwort