nginx服务器日志相关指令主要有两条:

1.一条是log_format,用来设置日志格式;

2.另外一条是access_log,用来指定日志文件的存放路径、格式和缓存大小,可以参加ngx_http_log_module。

log_format指令用来设置日志的记录格式,它的语法如下:

log_format name format {format ...}

name 定义的格式;

format 定义日志样式;

log_format有一个默认的、无须设置的combined日志格式设置,相当于Apache的combined日志格式,其具体参数如下:

log_format combined '$remote_addr-$remote_user [$time_local]'
‘"$request"$status $body_bytes_sent’‘"$http_referer" "$http_user_agent"’

假设将Nginx服务器作为Web服务器,位于负载均衡设备、Squid、Nginx反向代理之后,不能获取到客户端的真实IP地址了。
原因是经过反向代理后,由于在客户端和Web服务器之间增加了中间层,因此Web服务器无法直接拿到客户端的IP。
通过$remote_addr变量拿到的将是反向代理服务器的IP地址。
在日志格式样式中,变量$remote_addr和$http_x_forwarded_for用于记录IP地址;
$remote_user用于记录远程客户端用户名称;
$time_local用于记录访问时间与时区;
$request用于记录请求URL与HTTP协议;
$status用于记录请求状态,例如成功时状态为200,页面找不到时状态为404;
$body_bytes_sent用于记录发送客户端的文件主体内容大小;
$http_referer用于记录是从哪个页面链接访问过来的;
$http_user_agent用于记录客户浏览器的相关信息。

但是,反向代理服务器在转发请求的HTTP头信息中,可以增加X-Forwarded-For信息,用以记录原有的客户端IP地址和原来客户端请求的服务器地址。

这时候,要用log_format指令设置日志格式,让日志记录X-Forearded-For信息中的IP地址,即客户的真实IP。
例如,创建一个名为mylogformat的日志格式,再$http_x_forwarded_forlog_for变量记录用户的X_Forwarded-For IP 地址:
在日志格式样式中,变量$remote_addr和$http_x_forwarded_for用于记录IP地址;
log_format mylogformat '$http_x_forwarded_for_$remote_user [$time_local]'
‘"$request"$status $body_bytes_sent’
‘"$http_referer" "$http_user_agent"’

想要记录更详细的信息需要自定义设置log_format,具体可设置的参数格式及说明如下:

参数                      说明                                         示例
$remote_addr             客户端地址                                    211.28.65.253
$remote_user             客户端用户名称                                --
$time_local              访问时间和时区                                18/Jul/2012:17:00:01 +0800
$request                 请求的URI和HTTP协议                           "GET /article-10000.html HTTP/1.1"
$http_host               请求地址,即浏览器中你输入的地址(IP或域名)     www.wang.com 192.168.100.100
$status                  HTTP请求状态                                  200
$upstream_status         upstream状态                                  200
$body_bytes_sent         发送给客户端文件内容大小                        1547
$http_referer            url跳转来源                                   https://www.baidu.com/
$http_user_agent         用户终端浏览器等信息                           "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;
$ssl_protocol            SSL协议版本                                   TLSv1
$ssl_cipher              交换数据中的算法                               RC4-SHA
$upstream_addr           后台upstream的地址,即真正提供服务的主机地址     10.10.10.100:80
$request_time            整个请求的总时间                               0.205
$upstream_response_time  请求过程中,upstream响应时间                    0.002

转载于:https://www.cnblogs.com/sunshine-long/p/10878190.html

nginx 日志配置log_format用法相关推荐

  1. 【Nginx 日志配置】【访问日志log_format】【错误日志error_log 指令】【Nginx的日志轮转】

    文章目录 Nginx 日志配置 `log_format` 指令中常用的一些变量: 访问日志 案例 可以配置段:`http`, `stream`, `server`, `location`作用域. er ...

  2. Nginx 日志配置实践

    前言 Nginx日志对于统计.系统服务排错很有用. Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志).通过访问日志我们可以得到用户的IP地址.浏览器的信息, ...

  3. Nginx日志配置、错误界面配置、流量控制 第九天

    目录 nginx日志配置 nginx日志介绍 access.log error.log open_log_file_cache rewrite.log nginx的日志轮转 nginx错误界面配置 n ...

  4. Nginx 日志配置

    1.Nginx 日志介绍 Nginx 有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志, 所需日志模块 ngx_http_log_module 的支持,日志格式通过 log_for ...

  5. 运维配置:Nginx日志配置详解

    Nginx日志配置详解 前言 Nginx日志对于统计.系统服务排错很有用.Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志).通过访问日志我们可以得到用户的I ...

  6. 九爷带你了解 nginx 日志配置指令详解

    nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_ ...

  7. Nginx 日志配置、日志切割

    Nginx 日志配置.日志切割 设置 access.log 语法 log_format自定义格式 设置error_log 语法 日志切割 前置文章:Nginx 的配置文件 nginx.conf Ngi ...

  8. 渗透测试技术分享——nginx日志配置

    Nginx 日志配置 0x00 前言 日志使用用来进行数据统计.问题排错的重要手段.本文主要介绍 nginx 日志相关的配置如 access_log.log_format.log_not_found. ...

  9. log nginx 客户端请求大小_后端实践:Nginx日志配置(超详细)

    前言 设置access_log语法 作用域 基本用法 使用log_format自定义日志格式语法 设置error_log语法 基本用法 open_log_file_cache语法 基本用法 总结 前言 ...

最新文章

  1. 2019上海车展展后报告(整车篇)
  2. Poj1218_THE DRUNK JAILER(水题)
  3. python三大特征六大原则_面向对象程序设计(Object Oriented Programming)的三大特性,六大原则...
  4. matlab盒子分形维数_分形维数--matlab
  5. 微信支付,redirect_uri域名与后台配置不一致,错误代码10003
  6. tm图像融合编程matlab,遥感习题
  7. id vue2路由传参_vue 路由跳转传参
  8. flowable 中的互斥网关、并行网关、兼容网关、事件网关
  9. 阿里云环境迁移记录 - RabbitMQ集群搭建
  10. GB2312简体中文编码表
  11. 注塑模介绍、设计中文语音多媒体教学光盘 1CD
  12. Excel表格如何自动添加边框
  13. 【ArcGIS】Packaging succeeded,but publishing failed
  14. WIN10安装cad2006提示无权限安装的解决办法
  15. jupyter 更改主题 换成黑色背景
  16. BZOJ 1122 [POI2008]账本BBB 神题
  17. reverse-for-the-holy-grail-350 攻防世界
  18. 驼峰式命名法python_驼峰命名法
  19. 又双叕来分享实用的 好用的 方便的 网页转换器了
  20. android 7.0分享朋友圈提示:“获取资源失败,仅支持分享照片至朋友圈”或者FileProvider生成的Uri无法识别

热门文章

  1. 安装Neo4j提示:Unable to determine the path to java.exe
  2. 阿里云服务器如何加强服务器的安全?有哪些安全措施?
  3. java基础 - file类(递归遍历目录)
  4. Android EditText禁止复制粘贴
  5. Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
  6. 使用Git 管理heroku的项目(windows)
  7. 使用Dnsmasq加速苹果App Store、iCloud、iTunes、Mac更新等访问速度
  8. CentOS 5.5升级网卡驱动
  9. 运维老鸟谈生产场景如何对linux系统进行分区?
  10. 名人尿炕被人发现后怎么办?