`

nginx log 记录请求的头信息

 
阅读更多
记录访问的log,为了在出现特殊情况时,方便检查出现问题的地方。

log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /var/log/51yip.log access;

记录下,用户ip,用户真实ip,用户访问时间,用户访问的游览器信息等。这里面这样的$remote_addr变量是从哪来的呢?


$arg_PARAMETER 这个变量包含在查询字符串时GET请求PARAMETER的值。
$args 这个变量等于请求行中的参数。
$binary_remote_addr 二进制码形式的客户端地址。
$body_bytes_sent
$content_length 请求头中的Content-length字段。
$content_type 请求头中的Content-Type字段。
$cookie_COOKIE cookie COOKIE的值。
$document_root 当前请求在root指令中指定的值。
$document_uri 与$uri相同。
$host 请求中的主机头字段,如果请求中的主机头不可用,则为服务器处理请求的服务器名称。
$is_args 如果$args设置,值为"?",否则为""。
$limit_rate 这个变量可以限制连接速率。
$nginx_version 当前运行的nginx版本号。
$query_string 与$args相同。
$remote_addr 客户端的IP地址。
$remote_port 客户端的端口。
$remote_user 已经经过Auth Basic Module验证的用户名。
$request_filename 当前连接请求的文件路径,由root或alias指令与URI请求生成。
$request_body 这个变量(0.7.58+)包含请求的主要信息。在使用proxy_pass或fastcgi_pass指令的location中比较有意义。
$request_body_file 客户端请求主体信息的临时文件名。
$request_completion 请求完成
$request_method 这个变量是客户端请求的动作,通常为GET或POST。包括0.8.20及之前的版本中,这个变量总为main request中的动作,如果当前请求是一个子请求,并不使用这个当前请求的动作。
$request_uri 这个变量等于包含一些客户端请求参数的原始URI,它无法修改,请查看$uri更改或重写URI。
$schemeHTTP 方法(如http,https)。按需使用,例:
rewrite ^(.+)$ $scheme://example.com$1 redirect;

$server_addr 服务器地址,在完成一次系统调用后可以确定这个值,如果要绕开系统调用,则必须在listen中指定地址并且使用bind参数。
$server_name 服务器名称。
$server_port 请求到达服务器的端口号。
$server_protocol 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。
$uri 请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改。

上面的这些是nginx 支持一些内置的变量,当然我们可以自定义,例如

$http_x_forwarded_for

这个变量就是自定义的,用来获得用了代理用户的真实IP。

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
分享到:
评论

相关推荐

    Nginx日志管理介绍

    Nginx日志描述 通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息;...用于记录请求的url以及请求方法 $status 响应状态码,例如:200成功、404页面找不到等。 $body_byte

    Linux服务器nginx访问日志里出现大量http 400错误的请求分析

    服务器中的错误记录类似于这种: 124.65.133.242 – – [27/Oct/2014:14:30:51 +0800] “-” 400 0 “-” “-” 124.65.133.242 – – [27/Oct/2014:14:31:45 +0800] “-” 400 0 “-” ...经过分析nginx的log文件,发

    Nginx记录分析响应慢的请求及替换网站响应内容的配置

    主要介绍了Nginx记录分析响应慢的请求及替换网站响应内容的配置,分别用到了ngx_http_log_request_speed模块和ngx_http_sub_module模块,需要的朋友可以参考下

    Nginx.conf配置安全优化

    error_log 日志,nginx 停止/平滑重启,开启记录nginx access log中post请求,nginx 日志格式。

    nginx-flaxton-logger-module:Nginx 的完整请求记录器模块。 这是http的一部分

    创建此模块的主要原因是目前 Nginx 不提供完整的请求日志记录,这将在应用程序监控过程中提供更多功能。 安装 要安装此模块,您只需要制作一个git clone 。 在您拥有此模块的代码后,通过使用 Nginx 源对其进行配置...

    nginx-1.3.13

    如果某次请求没有展示预想的页面,而是展示了错误页面,也请查看logs\error.log文件。 nginx/Windows使用工作目录作为前缀将配置文件中设置的相对目录补齐。就上面安装的例子而言,工作目录应该是C:\nginx-1.3.13\...

    实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法

    nginx把对php的请求发给php-fpm fastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errors log里也看不到php的errorlog。 原因是php-fpm的配置文件php-fpm.conf中默认是关闭worker进程的错误...

    Nginx自定义访问日志的配置方式

    访问日志主要记录客户端访问Nginx的每一个请求,格式可以自定义。通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息。 日志的重要性不言而喻,一般来说我们开发过程中会为每个...

    nginx日志配置指令详解

    本文总结了nginx日志相关的配置如access_log、log_format、open_log_file_cache、log_not_found、log_subrequest、rewrite_log、error_log。 nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的...

    ngx_http_slowlog_filter_module:nginx实时监控器模块之一,用于记录超过指定执行时间的查询,例如在redis中使用slowlog命令

    概要这个模块是一个nginx过滤器模块,它通过http头过滤器累积从now到start_time(结构ngx_http_request_t中的start_sec和start_msec)之间的请求时间跨度,并记录在每个进程内存中。 执行时间不包括与客户端交谈和...

    nginx: [warn] “log_format” directive used only on “http” level 解决方法

    但是这样的又会产生一个问题,就是各子域名的日志文件都会记录所有请求的日志,等了好久都没找到解决方案,后来请教了飞飞之后终于找到解决的方法了。 原来log_format需要在nginx.conf的http层定义,然后

    nginx服务器access日志中大量400 bad request错误的解决方法

    主要介绍了nginx服务器access日志中大量400 bad request错误的解决方法,本文结论是空主机头导致的大量400错误日志,关闭默认主机的日志记录就可以解决问题,需要的朋友可以参考下

    详解Nginx日志配置及日志切割

    本文总结了nginx日志相关的配置如access_log、log_format、open_log_file_cache、log_not_found、log_subrequest、rewrite_log、error_log。 nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的...

    Nginx访问日志及错误日志参数说明

    其中访问日志记录客户端访问nginx的每一个请求,包含用户地域来源、跳转来源、使用终端、某个URL访问量等信息,访问日志格式可以自定义;错误日志则记录客户端访问nginx出错时的日志,格式不支持自定义,通过错误...

    nginx提示:500 Internal Server Error错误解决办法

    刚开始我以为是应用服务器或者是程序异常,检查了下各自的日志,连请求记录都无,程序代码里也没抛出过该类型的异常,所以可以从服务器或者Nginx中找原因了。 1、是否磁盘空间不足? 使用 df -k 查看硬盘空间是否满...

    access.log

    nginx服务器访问日志,记录网站运营中比如空间的运营情况,被访问请求的记录。通过网站日志可以清楚的得知用户在什么IP、什么时间、用什么操作系统、什么浏览器、什么分辨率显示器的情况下访问了你网站的哪个页面,...

    ngx_txid:nginx 的 $txid 变量 - 20 个不区分大小写的字符的可排序唯一 ID

    建造使用--add-module=path/to/ngx_txid配置和 nginx例子假设您想以列格式存储日志。 无论您的timer_resolution指令中的调度程序有多准确,即使跨连接,您也需要为每个请求提供一个连接密钥。 剩余的列可以根据记录...

    Nginx 过滤静态资源文件的访问日志的实现

    Nginx 大都既做静态资源服务器,也做反向代理服务器,尤其有些时候考虑到跨域问题,会对静态资源和后端接口使用同一个监听端口,如果不做一下过滤处理,会在 access_log 中看到大量的例如 js、css、jpg 等静态资源的...

    使用shell脚本对Nginx日志进行切分的示例代码

    本文介绍了使用shell脚本对Nginx日志进行切分的示例代码,分享给大家,具体如下: 1.日志格式 默认的日志格式: main log_format main '$remote_addr - $remote_user [$time_local] $request ' $status $body_bytes...

Global site tag (gtag.js) - Google Analytics