nginx的access.log文件详解
事实证明,日志文件真的是很重要很重要的。能够帮助我们快速的定位问题,并且知道用户访问的状态,浏览器,Ip,接口地址等,简直可怕。。
一、nginx的access.log
(1)对博主而言,日志文件存放在/usr/local/var/log/nginx 下,直接使用 tail -f命令即可查看access日志。
(2)access.log具体每项代表的意思
参数 说明 示例
$remote_addr 客户端地址 211.28.65.253
$remote_user 客户端用户名称 --
$time_local 访问时间和时区 /Jul/::: +
$request 请求的URI和HTTP协议 "GET /article-10000.html HTTP/1.1"
$http_host 请求地址,即浏览器中你输入的地址(IP或域名) www.it300.com
192.168.100.100
$status HTTP请求状态
$upstream_status upstream状态
$body_bytes_sent 发送给客户端文件内容大小
$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:
$request_time 整个请求的总时间 0.205
$upstream_response_time 请求过程中,upstream响应时间 0.002
(3)这个access.log 的格式是可以自己自定义的,自定义的位置在nginx.conf中设置

这是我本地的配置。红箭头部分的’access’是指定格式的名称。如果大家不定义的话,那就会选择默认的main,对用默认的模板。下面的箭头部分代表日志存放的路径以及所选择的格式。
(4)假设将Nginx服务器作为Web服务器,位于负载均衡设备、Squid、Nginx反向代理之后,不能获取到客户端的真实IP地址了。
原因是经过反向代理后,由于在客户端和Web服务器之间增加了中间层,因此Web服务器无法直接拿到客户端的IP。
通过$remote_addr变量拿到的将是反向代理服务器的IP地址。
但是,反向代理服务器在转发请求的HTTP头信息中,可以增加X-Forwarded-For信息,用以记录原有的客户端IP地址和原来客户端请求的服务器地址。
这时候,要用log_format指令设置日志格式,让日志记录X-Forearded-For信息中的IP地址,即客户的真实IP。
上图格式的最后部分,显示的就是用$http_x_forwarded_forlog_for变量记录用户的X_Forwarded-For IP 地址。
nginx的access.log文件详解的更多相关文章
- Nginx修改access.log日志时间格式
一.修改原因 因为要获取nginx访问信息,作为开发的数据使用,但是nginx的access.log文件中的默认的时间格式是这样的: [02/Nov/2017:20:48:25 +0800] 而要求的 ...
- 【转】Nginx+php-fpm+MySQL分离部署详解
转:http://www.linuxidc.com/Linux/2015-07/120580.htm Nginx+php-fpm+MySQL分离部署详解 [日期:2015-07-26] 来源:Linu ...
- Nginx RTMP 模块 nginx-rtmp-module 指令详解
译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解.指令Corertmp语法:rtmp { ... }上下文:根描述:保存所 ...
- Nginx基础篇(2)- Nginx基本配置文件和变量详解
Nginx基本配置文件和变量详解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx运行的用户 user nginx; # nginx进程数,建议设置为等于CPU总核心数. ...
- mysql的my.cnf文件详解
一.缘由 最近要接手数据库的维护工作,公司首选MySQL.对于MySQL的理解,我认为很多性能优化工作.主从主主复制都是在调整参数,来适应不同时期不同数量级的数据. 故,理解透彻my.cnf里的参数是 ...
- Nginx的介绍和安装详解
[介绍+安装]Nginx的介绍和安装详解 == 介绍和安装 == Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反转代理服务器, 其性能与IMAP/POP3代理服务器相当.Nginx ...
- Angular Npm Package.Json文件详解
Angular7 Npm Package.Json文件详解 近期时间比较充裕,正好想了解下Angular Project相关内容.于是将Npm官网上关于Package.json的官方说明文档进行了 ...
- Golang官方log包详解
Golang官方log包详解 以下全是代码, 详解在注释中, 请从头到尾看 // Copyright 2009 The Go Authors. All rights reserved. // Use ...
- Linux-apache httd.conf文件详解
Linux-apache httd.conf文件详解 # This is the main Apache server configuration file. It contains the # co ...
随机推荐
- [cb]扩展Hierarchy 添加二级菜单
目地 这篇博客教大家如何扩展Hierarchy 默认的Hierarchy 在Unity的Edior编辑器中,默认的Hierarchy如下 扩展的Hierarchy 扩展示例 MyInitOnLoad脚 ...
- 解析oracle的rownum(转)
解析oracle的rownum 本人最近在使用oracle的rownum实现分页显示的时候,对rownum做了进一步的分析和研究.现归纳如下,希望能给大家带来收获. 对于rownum来说它是 ...
- 如何在windows下使用pip安装
首先电脑已经安装好了python 找到python的安装目录,接着找到pip.exe,一般而言它会在Scripts文件夹下,我这里选择的是pip2.7.exe 接下来,win+r,输入cmd,回车打开 ...
- [ADS]An installation support file could not be installed
ADS:ARM Developer Suits 错误:An installation support file could not be installed 描述: 之前安装了一个不能用的ADS的版本 ...
- centos7下安装docker(9容器对资源的使用限制-内存)
一个docker Host上面会运行若干容器,每个容器都需要CPU,内存和IO资源.容器提供了控制分配多少CPU,内存给每个容器的机制,避免摸个容器因占用太多资源而影响其他 ...
- HDFS的namenode从单节点扩展为HA需要注意的问题
扩展为HA需要注意的问题 原Namenode称为namenode1,新增的Namenode称为namenode2. 从namenode单节点扩展为HA模式官网上有详细的教程,下面是扩展过程中疏忽的地方 ...
- mysql 创建 mb4 字符集数据库
create database sina default character set utf8mb4 collate utf8mb4_unicode_ci; show variables like ' ...
- 1 C++ 线程
#include "iostream" //#include "thread" //头文件一般不加入,复制到别的文件,导致命名冲突 //总增加 //using ...
- python3 小数据池
'''小数据池:为了重复的使用同一个数据str(一般的,简单的)int -5~256bool True False3个数据类型会被放入小数据池id()取变量的内存地址字符串'''# s1 = &quo ...
- Keil5 如何安装STM32 芯片包
http://www.keil.com/dd2/Pack/ 从该网址下载 相应芯片的PACK 包