NGINX 日志未与 Docker 卷映射

NGINX 日志未与 Docker 卷映射

我在 Nginx 配置文件中定义了两个日志级别

http {

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log         /var/log/nginx/access.log main;
    ...
}

在服务器中

server {
  access_log                /var/log/nginx/nginx_access.log;
  error_log                 /var/log/nginx/nginx_error.log;

  location / {
    ...
  }
}

我的 docker-compose.yaml

services:
  nginx:
    build:
      context: ./nginx
    restart: always
    volumes:
      - logs:/var/log/nginx
    ports:
      - "80:80"
    depends_on:
      - django
...

volumes:
  logs:

但是当我在日志/access.log、nginx_erro.log、nginx_acess.log 或 NGINX 创建的文件夹/文件都不在其中,但是当我检查 NGINX 容器时,文件就在那里。

我是不是忘记了什么事情?

答案1

您如何尝试访问docker主机上的日志?

尝试将您的命名卷映射到您的主机上:

services:
  nginx:
    build:
      context: ./nginx
    restart: always
    volumes:
      - logs:/var/log/nginx
    ports:
      - "80:80"
    depends_on:
      - django
...

volumes:
  logs:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/path/on/your/docker/host/to/mount' 

并检查访问和错误文件是否可用!

问候,

梅西

相关内容