如何查看Nginx的访问日志?

  

要查看Nginx的访问日志,可按以下步骤进行:

1. 打开Nginx配置文件

首先打开Nginx的配置文件,以Ubuntu系统为例,Nginx的配置文件路径为/etc/nginx/nginx.conf,可通过以下命令打开该文件:

sudo nano /etc/nginx/nginx.conf

2. 查找访问日志配置项

http块中查找访问日志相关的配置项,通常称为access_log,如果没有该配置项,则可手动添加,如下所示:

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

其中,/var/log/nginx/access.log为日志文件的路径,也可根据需要自定义路径。若需要设置日志格式,可在access_log之后添加对应的格式配置。

3. 重启Nginx服务

修改配置文件后,需要重启Nginx服务使其生效,可通过以下命令进行:

sudo service nginx restart

4. 查看访问日志

Nginx的访问日志默认情况下是按照时间轮换的,因此在查看访问日志时,通常需要先查看当前正在写入的日志文件,可通过以下命令进行:

sudo tail -f /var/log/nginx/access.log

该命令会实时显示access.log文件的末尾内容,若访问网站则会有对应的访问记录显示。另外,如果需要查看历史的访问记录,可通过以下命令查看:

sudo less /var/log/nginx/access.log

该命令会以读取日志文件的方式打开日志文件,可使用Page Up/Page Down等按键进行翻页查看。

示例:
比如我们在上述步骤中加入以下配置,指定日志格式为 $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"

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

这样设置之后,我们可以使用sudo less /var/log/nginx/access.log查看到格式化的日志信息,如下所示:

218.17.157.211 - - [20/Mar/2021:09:51:42 +0800] "GET / HTTP/1.1" 200 633 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134"

上面的日志记录了一次GET请求,其中包括了请求的IP、时间、请求方法、状态码、响应数据大小、请求来源和用户代理信息等。

相关文章