Nginx日志配置 by 杨坤 2015-1-20

回复 收藏
一,日志格式
log_format main '$remote_addr - $remote_user [$time_local] $request '
                    '"$status" $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';



log_format main1 '$proxy_add_x_forwarded_for - $remote_user [$time_local] '
                      '"$request" $status $body_bytes_sent '
                      '"$http_referer" "$http_user_agent"';  //此日志格式为,ip不仅记录代理的ip还记录远程客户端真实IP。

$remote_addr与$http_x_forwarded_for用以记录客户端IP地址,一个记录代理IP,一个记录真实IP;


$remote_user 用以记录客户端用户名称;


$time_local 用来记录访问时间与时区;

$request 用来记录请求的url与http协议;

$status 用来记录请求状态,成功是200;

$body_byte_sent 记录发送给客户端文件主体内容大小;

$http_referer 用来记录从哪个页面链接访问过来的;

$http_user_agent 记录客户端浏览器的相关信息;





二,定制日志

log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    '$host "$request_uri" $status'
    '"$http_referer" "$http_user_agent"';

在虚拟主机配置文件中加入:

access_log /usr/local/nginx/logs/Nginx_access_log combined_realip;


   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        access_log off;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        access_log /dev/null;
    }


三,日志切割

需要自己编写脚本切割日志

vim  /usr/local/sbin/logrotate.sh  


#!/bin/bash
pid=`cat /usr/local/nginx/logs/nginx.pid`
d=`date -d "-1 day" +%Y%m%d`
mv /usr/local/nginx/logs/1.log /usr/local/nginx/logs/$d.log
kill -HUP $pid




2015-01-20 15:29 举报
已邀请:
0

大自然

赞同来自:

坤哥辛苦、V5

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: