【问题标题】:Nginx logs are not shownNginx 日志不显示
【发布时间】:2021-02-19 21:23:46
【问题描述】:

我有一个 docker 运行 nginx,端口转发到 8080

我只想在点击时查看 nginx 中的日志

curl http://localhost:8080

(我得到了答案,但我想查看日志)

access.log 和 error.log 都从 /etc/nginx/nginx.conf 启用

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    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;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

tail -f access.log 和 cat access.log 都不起作用。我得到的只是一个空行:

root@fe0f47477548:/var/log/nginx# cat access.log

^C
root@fe0f47477548:/var/log/nginx#

【问题讨论】:

    标签: docker nginx logging


    【解决方案1】:

    NGINX docker 分发重定向 (soft links) 日志记录到 stdout/stderr

    lrwxrwxrwx 1 root root 11 Feb 17 19:20 access.log -> /dev/stdout
    lrwxrwxrwx 1 root root 11 Feb 17 19:20 error.log -> /dev/stderr
    

    来自 Docker 主机

    您可以使用 Docker 日志访问日志

    docker logs nginx
    

    从 Docker 容器内部

    可以删除标准 NGINX Docker Image 中定义的日志转发。
    这需要创建一个自定义 Dockerfile(即mynginx),但这是一个简单的更改

    FROM nginx:latest
    
    # drop symlinks
    RUN unlink /var/log/nginx/access.log
    RUN unlink /var/log/nginx/error.log
    

    运行新定义的容器时,可以在/var/logs/nginx中看到日志文件

    -rw-r--r-- 1 root root 491 Feb 19 13:14 access.log
    -rw-r--r-- 1 root root 0 Feb 19 13:14 error.log
    
    root@ca2472f28be5:/var/log/nginx# cat access.log
    72.25.0.1 - - [19/Feb/2021:13:15:55 +0000] "GET 
    /static/js/main.f81cbe58.chunk.js HTTP/1.1" 304 0 "http://localhost/" 
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 
    (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36" "-"
    

    【讨论】:

    • 是的,我知道,但我正在寻找一种从 docker 内部查看日志的方法。
    • 我已经编辑了答案以包含这个案例(它需要一个简单的定制)
    • 你能看看这个问题吗? stackoverflow.com/questions/66318024/…
    猜你喜欢
    • 1970-01-01
    • 2016-06-06
    • 2021-11-18
    • 2012-08-05
    • 2017-12-06
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    相关资源
    最近更新 更多