невозможно увидеть логи nginx - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь подтвердить, что мои журналы находятся в формате json, но я не вижу даже одного журнала.Я использую docker-compose

version: '3'
services:
  nginx:
    image: test_site
    volumes:
      - /Users/mikeJ/Desktop/test-logs/access:/tmp/logs/access
      - /Users/mikeJ/Desktop/test-logs/error:/tmp/logs/error
    build:
      context: .
    restart: unless-stopped      
    ports:
      - "8040:8040"

ngnix.conf

worker_processes 1;

events { worker_connections 1024; }

http {
  include    mime.types;
  sendfile on;
  access_log on;

 log_format json_combined escape=json
   '{'
     '"time_local":"$time_local",'
     '"remote_addr":"$remote_addr",'
     '"remote_user":"$remote_user",'
     '"request":"$request",'
     '"status": "$status",'
     '"body_bytes_sent":"$body_bytes_sent",'
     '"request_time":"$request_time",'
     '"http_referrer":"$http_referer",'
     '"http_user_agent":"$http_user_agent"'
   '}';

  server {
    listen 8040;

    error_log /tmp/logs/error/error.log warn;
    access_log /tmp/logs/access/access.log;

    server_name localhost;
    location /{
      root /usr/share/nginx/html/;
      index index.html;
    }

  location ~ ^/test/footer {
    root /usr/share/nginx/html/;
    expires 5m;
    access_log on;
}

}

dockerfile

FROM nginx:1.15.0-alpine

RUN rm -v /etc/nginx/nginx.conf

# Copying nginx configuration file
ADD nginx.conf /etc/nginx/

# setup nginx caching
RUN mkdir -p /tmp/nginx/cache

#create directory for logs
RUN mkdir -p /tmp/logs/error
RUN mkdir -p /tmp/logs/access

#adding footer file
ADD footer /usr/share/nginx/html/footer

# Expose ports
EXPOSE 8040

Я даже ssh вконтейнер и ничего там.

изнутри контейнера

 # ps aux | grep nginx
    1 root       0:00 nginx: master process nginx -g daemon off;
    7 nginx      0:00 nginx: worker process

1 Ответ

0 голосов
/ 01 декабря 2018

Не могли бы вы подтвердить правильность nginx.conf?Кажется, что процесс nginx не имеет прав на запись в созданный каталог.

ps -eo "%U %G %a" | grep nginx 

Запустите команду выше, чтобы узнать пользователя.Это nginx в вашем случае.Измените владельца и группу для каталога журналов и перезагрузите службу nginx.

#create directory for logs
RUN mkdir -p /tmp/logs/error
RUN mkdir -p /tmp/logs/access && \
    chown -R nginx:nginx /tmp/logs/

#adding footer file
ADD footer /usr/share/nginx/html/footer

Проверьте папку журналов после доступа к одному из ваших URL.

...