Хранение журналов доступа Docker Nginx внутри тома Docker - PullRequest
0 голосов
/ 27 февраля 2019

В настоящее время мой докер-контейнер печатает журналы доступа nginx в / dev / stdout.Как создать том внутри моего док-контейнера для хранения журналов доступа?

Мой Dockerfile:

FROM python:3.7

ENV APP_ROOT /src
ENV CONFIG_ROOT /config

RUN apt-get update
RUN apt-get install -y apt-utils
RUN apt-get -y install unixodbc-dev
RUN apt-get -y install default-libmysqlclient-dev

RUN mkdir ${CONFIG_ROOT}
COPY /app/requirements.txt ${CONFIG_ROOT}/requirements.txt
RUN pip install -r ${CONFIG_ROOT}/requirements.txt

RUN mkdir ${APP_ROOT}
WORKDIR ${APP_ROOT}

ADD /app/ ${APP_ROOT}

Мой docker-compose.yml:

version: "3"

services:
  app:
    build: .
    container_name: django-gunicorn
    restart: always
    env_file:
      - django.env
    ports:
      - "8000:8000"
    command:
      "gunicorn --workers=2 --bind=0.0.0.0:8000 mysite.wsgi:application"

  nginx:
    image: nginx:1.14
    container_name: ngx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx:/etc/nginx/conf.d
      - ./app/static:/static
    depends_on:
      - app

Мой nginx / default.conf:

limit_req_zone "$binary_remote_addr$request_uri" zone=one:10m rate=60r/m;

server {
    listen 80;
    server_name example.org;
    server_tokens off;

    location  /static/ {
        autoindex on;
        alias /static/;
    }

    location / {
        proxy_pass http://app:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        limit_req zone=one nodelay burst=30;

    }
}

Я пытаюсь добавить ведения журнала fail2ban и fluentd в это приложение, но сначала мне нужно сохранить физический файл (не / dev / stout), который можно использовать для другихцели ведения журнала.

Спасибо вам!

1 Ответ

0 голосов
/ 28 февраля 2019

Помимо комментариев, приведенных выше, чтобы добавить том, вам необходимо настроить основную конфигурацию Nginx (наиболее вероятно /etc/nginx/nginx.conf) и / или конфигурационные файлы для каждого vhost.

В большинстве случаев добавьте их на свой основнойконфигурация:

http {
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
}

Подобные записи могут быть внутри server или location

...