LNMP-Nginx访问日志

访问日志

1、定义日志格式

 [[email protected] ~]# vi /usr/local/nginx/conf/nginx.conf
    log_format log001 ‘$remote_addr $http_x_forwarded_for [$time_local]‘
    ‘ $host "$request_uri" $status‘
    ‘ "$http_referer" "$http_user_agent"‘;

▎Nginx日志格式:


$remote_addr


客户端IP(公网IP)


$http_x_forwarded_for


代理服务器的IP


$time_local


服务器本地时间


$host


访问主机名(域名)


$request_uri


访问的url地址


$status


状态码


$http_referer


referer


$http_user_agent


user_agent

2、增加访问日志项

[[email protected] ~]# vi /usr/local/nginx/conf/vhost/default.conf
server
{
    listen 80 default_server;  
    server_name aaa.com;
    index index.html index.htm index.php;
    root /data/wwwroot/default;
    access_log /tmp/default.log log001;##增加该行,该行元素:访问日志,存储地址,格式名称
}

3、检查与重载

[[email protected] ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[[email protected] ~]# /usr/local/nginx/sbin/nginx -s reload

4、测试效果

[[email protected] ~]# curl -x127.0.0.1:80 aaa.com/index.html
“This is a default site.”
[[email protected] ~]# curl -x127.0.0.1:80 aaa1.com/index.html
“This is a default site.”
[[email protected] ~]# cat /tmp/default.log 
127.0.0.1 - [12/Aug/2017:10:34:45 +0800] aaa.com "/index.html" 200 "-" "curl/7.29.0"
127.0.0.1 - [12/Aug/2017:10:34:52 +0800] aaa1.com "/index.html" 200 "-" "curl/7.29.0"

日志切割

1、日志切割脚本

[[email protected] ~]# vi /usr/local/sbin/nginx_log_rotate.sh
#! /bin/bash
d=`date -d "-1 day" +%Y%m%d`
logdir="/tmp/"
nginx_pid="/usr/local/nginx/logs/nginx.pid"
cd $logdir
for log in `ls *.log`
do
    mv $log $log-$d
done
/bin/kill -HUP `cat $nginx_pid`


▎KILL参数:

  • INT:快速关闭,是当用户键入<Control-C>时由终端驱动程序发送的信号。
  • TERM:快速关闭,请求彻底终止某项执行操作,它期望接收进程清除自给的状态并退出。
  • HUP:平滑启动,重新加载配置文件。
  • QUIT:从容关闭。


2、执行脚本

[[email protected] tmp]# sh -x /usr/local/sbin/nginx_log_rotate.sh 
++ date -d ‘-1 day‘ +%Y%m%d
+ d=20170811
+ logdir=/tmp/
+ nginx_pid=/usr/local/nginx/logs/nginx.pid
+ cd /tmp/
++ ls default.log
+ for log in ‘`ls *.log`‘
+ mv default.log default.log-20170811
++ cat /usr/local/nginx/logs/nginx.pid
+ /bin/kill -HUP 89689

3、检查效果

[[email protected] tmp]# ls
default.log  default.log-20170811  mysql.sock  pear  php-fcgi.sock

4、定期任务计划

[[email protected] tmp]# crontab -e
0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh

5、清理过期日志

[[email protected] tmp]# find /tmp/ -name *.log-* -type f -mtime +10 |xagrs rm 
##也可以放在脚本里,定期清除

静态文件不记录日志和过期时间

1、编辑配置文件

[[email protected] default]# vi /usr/local/nginx/conf/vhost/default.conf

server
{
    listen 80 default_server;
    server_name aaa.com;
    index index.html index.htm index.php;
    root /data/wwwroot/default;
    access_log /tmp/default.log log001;
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
          expires      7d;
          access_log off;
    }
    location ~ .*\.(js|css)$
    {
          expires      12h;
          access_log off;
    }
}

2、检查与重载

[[email protected] default]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[[email protected] default]# /usr/local/nginx/sbin/nginx -s reload

3、检查效果

[[email protected] default]# ls
index.html  pic001.gif
[[email protected] default]# curl -x127.0.0.1:80 aaa.com/pic001.gif -I
HTTP/1.1 200 OK
Server: nginx/1.12.1
Date: Sat, 12 Aug 2017 03:31:08 GMT
Content-Type: image/gif
Content-Length: 66698
Last-Modified: Sat, 12 Aug 2017 03:29:18 GMT
Connection: keep-alive
ETag: "598e760e-1048a"
Expires: Sat, 19 Aug 2017 03:31:08 GMT
Cache-Control: max-age=604800
Accept-Ranges: bytes

[[email protected] tmp]# curl -x127.0.0.1:80 aaa.com/pic001 -I
HTTP/1.1 404 Not Found
Server: nginx/1.12.1
Date: Sat, 12 Aug 2017 03:34:43 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive

[[email protected] tmp]# cat /tmp/default.log
127.0.0.1 - [12/Aug/2017:11:34:43 +0800] aaa.com "/pic001" 404 "-" "curl/7.29.0"
时间: 2024-10-09 10:41:48

LNMP-Nginx访问日志的相关文章

LNMP(2)Nginx默认虚拟主机、Nginx用户认证、Nginx域名重定向、Nginx访问日志、

Nginx默认虚拟主机 Nginx和httpd都有虚拟主机,在httpd中第一个被加载的就是默认虚拟主机:但是在Nginx中它有一个配置用来标记默认虚拟主机(default_server),如果不做标记,那么第一个也是默认为虚拟主机. 默认虚拟主机设置: 1.需改配置文件/usr/local/nginx/conf/nginx.conf cd /usr/local/nginx/conf/ vim nginx.conf 删除内容后,加上一行(在httpd{}里加)include vhost/*.co

ELK+syslog+nginx访问日志收集+分词处理

一.nginx访问日志配置: 1.日志格式配置: log_format json '{"@timestamp":"$time_iso8601",' '"host":"$server_addr",' '"clientip":"$remote_addr",' '"size":$body_bytes_sent,' '"xff":"$http_x

elkstack实战---集中管理nginx访问日志及报表展示

一.nginx访问日志,格式调整为json # cat /opt/config/tengine/nginx.conf |grep json log_format json '{"@timestamp":"$time_iso8601",' '"host":"$server_addr",' '"method":"$request_method",' '"url":&quo

Nginx 访问日志增长暴增出现尖刀的详细分析

前言:          Nginx日志里面Mobileweb_access.log增长特别大,一天上百兆,将近100W的访问记录,按照我们目前的规模,热点用户才500个左右,就算人人用手机app访问,怎么可能会有这么大的url访问量?以前只是安装使用nginx,还没有抽出时间仔细研究,这回需要彻底的去分析nginx日志了. 1,日志分类 主要2种,一种是错误日志,一种是访问日志,这些配置都在/usr/local/nginx/conf/nginx.conf里面,默认都是打开的,自己也可以选择关闭

Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间介绍

Nginx访问日志 1. 进入配置文件 [[email protected] src]# vim /usr/local/nginx/conf/nginx.conf  //搜索log_format 参考更改配置成如下: log_format aming '$remote_addr $http_x_forwarded_for [$time_local]' 如图: 日志格式字段含义如下: combined_realip为日志格式的名字,后面可以调用它. 2.到虚拟主机配置文件中指定访问日志的路径 [[

2018-3-14 12周3次课 Nginx访问日志、日志分割、日志不记录静态文件和过期时间

12.10 Nginx访问日志 ·日志格式: [[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf 搜索log_format (虽然红框中有三行,但实际上时一行配置,以分号为结尾) combined_realip 定义日志格式名字,此处定义成什么,那么后面引用时就要写成什么 公网ip(出口ip) ·除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加 access_log /tmp/1.log co

12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件不记录日志和过期

12.10 Nginx访问日志 [[email protected] vhost]# vim test.com.conf除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加access_log /tmp/test.com.log martin;这里的combined_realip就是在nginx.conf中定义的日志格式名字 [[email protected] vhost]# /usr/local/nginx/sbin/nginx -tnginx: the co

nginx访问日志配置+日志切割+不记录静态文件日志+设置静态文件过期时间

nginx访问日志 查看nginx.conf文件 vim /usr/local/nginx/conf/nginx.conf 中间有一行是定义log的格式 log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"';

48.Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

一.Nginx访问日志 日志格式 vim /usr/local/nginx/conf/nginx.conf //搜索log_format combined_realip //规则名字 除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加 vim /usr/local/nginx/conf/vhost/test.com.conf 添加 access_log /tmp/1.log combined_realip; 这里的combined_realip就是在nginx.

十二周三课 Nginx访问日志、 Nginx日志切割、 静态文件不记录日志和过期时间

Nginx访问日志 Nginx的文件格式存在于主配置文件中./usr/local/nginx/conf/nginx.conf然后搜索log_format找到他的配置文件这样我们就可以进行日志的格式配置了. 我们常用如下配置.$remote_addr客户端IP(公网IP)$http_x_forwarded_for代理服务器的IP$time_local服务器本地时间$host访问主机名(域名)$request_uri访问的url地址$status状态码$http_refererreferer$htt