nginx 常用的配置文件有两种: access.log 和 error.log

access.log 的作用是 记录用户所有的访问请求,不论状态码,包括200 ,404,500等请求,404,500的请求并不会出现在error.log中。

error.log 的作用是 记录nginx 本身运行时的一些错误,不会记录用户访问的请求。比如记录模块错误信息日志,以及nginx配置文件的错误日志等,格式不支持自定义,可以设置级别。

access.log 的格式设置:
        log_format  combined  '$remote_addr - $remote_user  [$time_local]  '
                                   ' "$request"  $status  $body_bytes_sent  '
                                   ' "$http_referer"  "$http_user_agent" ';

        #日志格式允许包含的变量注释如下:
            $remote_addr, $http_x_forwarded_for 记录客户端IP地址
            $remote_user 记录客户端用户名称
            $request 记录请求的URL和HTTP协议
            $status 记录请求状态
            $body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
            $bytes_sent 发送给客户端的总字节数。
            $connection 连接的序列号。
            $connection_requests 当前通过一个连接获得的请求数量。
            $msec 日志写入时间。单位为秒,精度是毫秒。
            $pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。
            $http_referer 记录从哪个页面链接访问过来的
            $http_user_agent 记录客户端浏览器相关信息
            $request_length 请求的长度(包括请求行,请求头和请求正文)。
            $request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
            $time_iso8601 ISO8601标准格式下的本地时间。
            $time_local 通用日志格式下的本地时间。

            #参考实例
            http {
                log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                                                    '"$status" $body_bytes_sent "$http_referer" '
                                                    '"$http_user_agent" "$http_x_forwarded_for" '
                                                    '"$gzip_ratio" $request_time $bytes_sent $request_length';

                log_format srcache_log '$remote_addr - $remote_user [$time_local] "$request" '
                                            '"$status" $body_bytes_sent $request_time $bytes_sent $request_length '
                                            '[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]';

                open_log_file_cache max=1000 inactive=60s;

                server {
                    server_name ~^(www\.)?(.+)$;
                    access_log logs/$2-access.log main;
                    error_log logs/$2-error.log;

                    location /srcache {
                        access_log logs/access-srcache.log srcache_log;
                    }
                }
            }  error.log 配置示例:

#错误日志保存位置
            #error_log logs/error.log;

#指定错误日志的位置和级别

#error_log logs/error.log notice;
           #error_log logs/error.log info;


nginx的access.log 和 error.log的更多相关文章

  1. nginx关闭全局access.log,error.log

    如果nginx的server里没配置access.log,nginx会默认将server的访问日志记录到access.log, 关闭方法: 在nginx.conf配置文件中, 在全局配置中添加 err ...

  2. 限制Apache日志access.log、error.log文件大小

    在 Windows 下的设置例子如下: # 限制错误日志文件为 1M ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 1M& ...

  3. Nginx启动报错: could not open error log file: open() &q

    启动nginx报如下错误: nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error ...

  4. Nginx 的 access log 如何以 json 形式记录?

    Nginx 的 access log 默认是以空格分隔的字符串形式记录的,格式如下 log_format proxy '[$time_local] $remote_addr ' '$protocol ...

  5. nginx error.log 提示 [error] 887#887: *58 FastCGI sent in stderr: "PHP message: PHP Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50556 Library:50637

    0. 1.问题 1.1现象: nginx error.log 提示 [error] 887#887: *58 FastCGI sent in stderr: "PHP message: PH ...

  6. nginx的access.log文件详解

    事实证明,日志文件真的是很重要很重要的.能够帮助我们快速的定位问题,并且知道用户访问的状态,浏览器,Ip,接口地址等,简直可怕.. 一.nginx的access.log(1)对博主而言,日志文件存放在 ...

  7. Nginx修改access.log日志时间格式

    一.修改原因 因为要获取nginx访问信息,作为开发的数据使用,但是nginx的access.log文件中的默认的时间格式是这样的: [02/Nov/2017:20:48:25 +0800] 而要求的 ...

  8. 在nginx日志access log可以记录POST请求的参数值

    1)      在nginx日志access log可以记录POST请求的参数值 实现程度:日志中可以显示POST请求所提交的参数值 问题: 日志中文显示十六进制(在配置文件中配置中文也无效) 没有对 ...

  9. (转载)Apache下error.log文件太大的处理

    偶尔发现Apache下的错误日志非常的大,有5G多,先停止Apache服务的所有进程,最简单就是输命令:net stop apache2.4,然后删除 Apache/logs/目录下的 error.l ...

随机推荐

  1. js获取cookie

    js获取cookie 之前用jQuery.cookie来获取cookie,虽然简单,但是项目上又多引用了一个插件,总觉得不太好,下面是我封装的js原生获取cookie的函数. function get ...

  2. retrofit2的get和post

    get: 例: @GET("room/question_focus") Call<BaseResponseEntity> followQuestion(@Query(& ...

  3. C++之STL一般总结

    重新复习一下STL 什么是STL? STL(模板和标准模板库),实现与类型无关的算法和数据类型,需要将实现中的类型参数化,允许用户根据它的需要制定不同的类型. 一.一般介绍 STL(Standard ...

  4. PHP处理CSV表格文件的常用操作方法是怎么样呢

    php来说,fgetcsv读入csv表格,返回一个数组,然后foreach输出成HTML的<table>,这步操作几行代码就能实现,非常简单.工作量主要还在于浏览器前端,建议你用jQuer ...

  5. [Bullet3]常见物体和初始化

    官方文档:http://bulletphysics.org 开源代码:https://github.com/bulletphysics/bullet3/releases API文档:http://bu ...

  6. C++对C语言register的增强

    register关键字 请求编译器让变量a直接放在寄存器里面,速度快 在c语言中 register修饰的变量 不能取地址,但是在c++里面做了内容 1 register关键字的变化 register关 ...

  7. vue+nginx编译部署

    1.项目路径下vue-test输入命令npm run build编译完成后会发现在vue-test文件夹下多出一个dist文件夹这里面就是编译好的文件了.2.网上下载nginx,下载地址http:// ...

  8. HTTP 错误 500 调用loadlibraryex失败

    HTTP 错误 500.0 - Internal Server Error 调用 LoadLibraryEx 失败,在 ISAPI 筛选器 C:\Windows\Microsoft.NET\Frame ...

  9. [转] React 是什么

    用脚本进行DOM操作的代价很昂贵.有个贴切的比喻,把DOM和JavaScript各自想象为一个岛屿,它们之间用收费桥梁连接,js每次访问DOM,都要途径这座桥,并交纳“过桥费”,访问DOM的次数越多, ...

  10. js和css实现内容超过边框,就自动省略,自动添加title

    在项目汇总,我们有这样的需求,如果内容多了,就自动省略,自动添加title 这个需要判断判断俩个值,一个是width(),一个是scrollWidth, 在div中,如果内容没有超过边框,这俩个值是一 ...