我在 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'
并检查访问和错误文件是否可用!
问候,
梅西