相关知识可参考文章:nginx日志格式及自定义日志配置

1.查看nginx的log配置

1)vim /etc/nginx/nginx.conf

打开为

user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;   //记录nginx错误日志的路径, 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;     //  main代表nginx的log_format的name

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

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

针对其中log_format 

 1.$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址;
 2.$remote_user :用来记录客户端用户名称;
 3.$time_local : 用来记录访问时间与时区;
 4.$request : 用来记录请求的url与http协议;
 5.$status : 用来记录请求状态;成功是200,
 6.$body_bytes_s ent :记录发送给客户端文件主体内容大小;
 7.$http_referer :用来记录从那个页面链接访问过来的;
 8.$http_user_agent :记录客户端浏览器的相关信息;

2).将 1)中的 error.log打印出来的标准格式

 tail -f /var/log/nginx/error.log

2017/10/11 14:01:36 [error] 1337#1337: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.2.113, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.2.157", referrer: "http://192.168.2.157/"
2017/10/11 14:16:05 [error] 1337#1337: *3 open() "/usr/share/nginx/html/1111" failed (2: No such file or directory), client: 192.168.2.113, server: localhost, request: "GET /1111 HTTP/1.1", host: "192.168.2.157"
2017/10/11 14:16:26 [error] 1392#1392: *1 open() "/usr/share/nginx/html/1111" failed (2: No such file or directory), client: 192.168.2.113, server: localhost, request: "GET /1111 HTTP/1.1", host: "192.168.2.157"

2.nginx变量

1)http请求变量

arg_PARAMETER、http_HEADER、sent_http_HEADER(服务端返回给客户端reponse的head)

例子:

vim /etc/nginx/nginx.conf

修改配置文件

user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;   //记录nginx错误日志的路径, WARN代表错误日志的级别
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

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

log_format main '$http_user_agent' '$remote_addr - $remote_user [$time_local] "$request" '   //原始是http-User-Agent   但是这里需要小写,并且将-替换成_
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;     //  main代表nginx的log_format的name

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

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

保存后

nginx -t -c /etc/nginx/nginx.conf   //  -t表示检查配置文件的格式正确与否,-c 标识配置文件的路径的检查

如果成功后

nginx -s reload -c /etc/nginx/nginx.conf  //重新加载配置

请求几次本机

curl http://127.0.0.1

tail -n 200  /var/log/nginx/access.log

发现日志最前面出现的相应的信息

2)内置变量

nginx内置的

访问http://nginx.org/en/docs/

点击Logging to syslog

http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log

点击红框可以查看所有的内置变量

3)自定义变量

自己定义

nginx日志的更多相关文章

  1. 烂泥:利用awstats分析nginx日志

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 昨天把nginx的日志进行了切割,关于如何切割nginx日志,可以查看<烂泥:切割 ...

  2. 烂泥:切割nginx日志

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 这几天自己看了下博客的nginx日志,发现日志文件发现越来越大. 因为nginx自己不会 ...

  3. ELK+redis搭建nginx日志分析平台

    ELK+redis搭建nginx日志分析平台发表于 2015-08-19   |   分类于 Linux/Unix   |  ELK简介ELKStack即Elasticsearch + Logstas ...

  4. 使用flume-ng聚合双活Nginx日志

    前不久使用Keepalived搭建了Nginx双活代理服务器,以达到一个公网IP后支持多个云主机的多个域名网站的目的.完成后又想在这双活的Nginx上有所有访问网站的日志,之前有了解过Google A ...

  5. nginx日志分析利器GoAccess

    面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些?访问前10的请求有哪些?当你领略过goaccess之后,你就明白,这些问题,除了考验你的脚本背诵记 ...

  6. linux shell:nginx日志切割脚本

    需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名   简要命令: mv /usr/local/tengine/logs/access.l ...

  7. 使用elk+redis搭建nginx日志分析平台

    elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态 ...

  8. Nginx 日志分享

    Nginx 日志对于大部分人来说是个未被发掘的宝藏,总结之前做某日志分析系统的经验,和大家分享一下 Nginx 日志的纯手工分析方式. Nginx 日志相关配置有 2 个地方:access_log 和 ...

  9. elk系列3之通过json格式采集Nginx日志

    preface 公司采用的LNMP平台,跑着挺多nginx,所以可以利用elk好好分析nginx的日志.下面就聊聊它吧. 下面的所有操作都在linux-node2上操作 安装Nginx nginx是开 ...

  10. 使用logrotate管理nginx日志文件

    本文转载自:http://linux008.blog.51cto.com/2837805/555829 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日 ...

随机推荐

  1. unity 2048Game

    将游戏分为四个脚本,将数据和界面分开,这是开发模式常用的类似于mvc模式,但由于我们只用一个二位数组就可以保存数据,所以讲m省略 GameControllor 控制游戏数据的脚本, using Uni ...

  2. 学习shell脚本之前的基础知识(一)(学习记录帖)

    记录命令历史:我们敲过的命令,linux会有记录,保存在家目录的.bash_history文件中.(备注:只有用户正常退出当前shell时,当前命令才会保存在.bash_history文件中) “  ...

  3. EMbedding

    FNN模型:非端到端 输入 --> 特征onehot --->FM 模型--->输出每个特征权重及因子值  ----> 输入神经网络  ----> 输出每个预测值 此为一 ...

  4. MAC下Xcode配置opencv(2017.3.29最新实践,亲测可行)(转)

    本文原创,未经同意,谢绝转载!(转载请告知本人并且经过本人同意--By Pacific-hong) 本人小硕一枚,因为专业方向图像相关,所以用到opencv,然后网上MAC下Xcode配置opencv ...

  5. redis编译安装

    centos7 redis-4.0.6 make 报错 jemalloc.h: No such file or directory make MALLOC=libc MALLOC默认值是jemallo ...

  6. mui-当使用addeleventlisener()方法绑定事件时选择器无法绑定事件

    在mui中绑定事件不能用jQuery或mui(“#XX”)的形式选取某个元素,而是document.getelementbyid()的形式 mui(“#XX”)可以使用on方法绑定事件

  7. table-cell http://www.cnblogs.com/StormSpirit/archive/2012/10/24/2736453.html

    http://www.cnblogs.com/StormSpirit/archive/2012/10/24/2736453.html

  8. 签名Cookie

    [签名Cookie] set-cookie时加上防篡改验证码. 如: user_name=alex|bj95ef23cc6daecc475de   防篡改验证码的生成规则可以很简单:md5(cooki ...

  9. django搭建的站点,通过localhost能访问,但是通过ip不能访问

    问题:使用ip访问不了django站点,只能用127.0.0.1访问     解决方法:启动服务时ip使用0.0.0.0   使用gunicorn启动 gunicorn -w4 -b0.0.0.0:8 ...

  10. lucene笔记

    lucene全文检索 全文检索是计算机程序通过扫描文章中的每一个词, 对每一个词建立一个索引, 指明该词在文章中出现的次数和位置. 当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程