91.Nginx配置:访问日志,日志切割,静态文件不记录日志和过期时间

一、访问日志

1、查看Nginx日志格式

[[email protected] ~]# grep -A2 log_format /usr/local/nginx/conf/nginx.conf
log_format combined_realip ‘$remote_addr $http_x_forwarded_for [$time_local]‘
‘ $host "$request_uri" $status‘
‘ "$http_referer" "$http_user_agent"‘;
也可以使用vim打开nginx配置文件,搜索关键字log_format。
变量说明:

combined_realip为日志格式名字,可以改为其他的,后面可以调用它。

2、虚拟主机指定访问日志路径

[[email protected] ~]# cd /usr/local/nginx/conf/vhost/
[[email protected] vhost]# ls
linuxtest.conf moved.conf zlinux.conf
[[email protected] vhost]# vim linuxtest.conf

server
{
listen 80;
server_name linuxtest.com;
index index.html index.htm index.php;
root /data/wwwroot/linuxtest;

location /
{
auth_basic "Auth";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
}
access_log /tmp/linuxtest.log combined_realip;
}#使用access_log指定日志存储路径和使用的日志格式名字

3、测试

[[email protected] vhost]# curl -x127.0.0.1:80 linuxtest.com/ -I
HTTP/1.1 401 UnauthorizedServer: nginx/1.12.2Date: Wed, 14 Mar 2018 07:08:32 GMTContent-Type: text/htmlContent-Length: 195Connection: keep-aliveWWW-Authenticate: Basic realm="Auth"

[[email protected] vhost]# curl -x127.0.0.1:80 -u zlinux:123456 linuxtest.com/ -I
HTTP/1.1 200 OKServer: nginx/1.12.2Date: Wed, 14 Mar 2018 07:08:53 GMTContent-Type: text/htmlContent-Length: 31Last-Modified: Tue, 13 Mar 2018 07:33:35 GMTConnection: keep-aliveETag: "5aa77ecf-1f"Accept-Ranges: bytes

[[email protected] vhost]# curl -x127.0.0.1:80 -u zlinux:123456 linuxtest.com/ -I
HTTP/1.1 200 OKServer: nginx/1.12.2Date: Wed, 14 Mar 2018 07:09:00 GMTContent-Type: text/htmlContent-Length: 31Last-Modified: Tue, 13 Mar 2018 07:33:35 GMTConnection: keep-aliveETag: "5aa77ecf-1f"Accept-Ranges: bytes

[[email protected] vhost]# ls /tmp/linuxtest.log
/tmp/linuxtest.log
[[email protected] vhost]# cat /tmp/linuxtest.log
127.0.0.1 - [14/Mar/2018:15:08:32 +0800] linuxtest.com "/" 401 "-" "curl/7.29.0"
127.0.0.1 - [14/Mar/2018:15:08:53 +0800] linuxtest.com "/" 200 "-" "curl/7.29.0"
127.0.0.1 - [14/Mar/2018:15:09:00 +0800] linuxtest.com "/" 200 "-" "curl/7.29.0"

二、访问日志切割

Nginx不自带日志切割工具,要想切割Nginx日志需要借助系统的切割工具或者自定义脚本。这里提供一个Nginx日志切割脚本供参考。

1、编写日志切割脚本

[[email protected] vhost]# vim /usr/local/sbin/nginx_log_rotate.sh
#! /bin/bash# date +%Y%m%d 显示的是今天的日期 # 加上 -d "-1 day" 显示的是昨天的日期
d=`date -d "-1 day" +%Y%m%d`
#定义日志存放的路径,假设存放在/tmp/下
logdir="/tmp"
# pid文件
nginx_pid="/usr/local/nginx/logs/nginx.pid"
cd $logdir
# 在日志存放路径下循环更改日志文件名 for log in `ls *.log`do
    mv $log $log-$ddone
# 在不关闭进程前提下重启,等价于nginx -s reload

/bin/kill -HUP cat $nginx_pid

2、验证

[[email protected] vhost]# sh -x  /usr/local/sbin/nginx_log_rotate.sh   //-x选项是调试选项
++ date -d ‘-1 day‘ +%Y%m%d
+ d=20180313
+ logdir=/tmp
+ nginx_pid=/usr/local/nginx/logs/nginx.pid
+ cd /tmp
++ ls linuxtest.log
+ for log in ‘`ls *.log`‘
+ mv linuxtest.log linuxtest.log-20180313
++ cat /usr/local/nginx/logs/nginx.pid
+ /bin/kill -HUP 14119
[[email protected] vhost]# ls /tmp/        //生成了带日期的日志
linuxtest.log           mysql.sock  php-fcgi.sock
linuxtest.log-20180313  pear        systemd-private-ee3d7331f2804e42bc9bfe8f2b90a0e8-vmtoolsd.service-3B2v7u

3、增加任务计划

[[email protected] vhost]# crontab -e no crontab for root - using an empty one //介入以下内容
0 0 * /bin/bash /usr/local/sbin/nginx_logrotate.sh

三、配置静态文件不记录和过期时间

1、修改虚拟主机配置

[[email protected] vhost]# vim linuxtest.conf
server
{
   listen 80;
   server_name linuxtest.com;
   index index.html index.htm index.php;
   root /data/wwwroot/linuxtest;

   location /
     {
       auth_basic         "Auth";
       auth_basic_user_file /usr/local/nginx/conf/htpasswd;
     } #    ~ 匹配后续的正则表示#    使用\转义.,匹配.jpg等文件
   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {#       expires设置过期时间
        expires 7d;
#       关闭日志记录
        access_log off;
    }   

   location ~ .*\.(css|js)$
    {
        expires 12h;
        access_log off;
    }
   access_log /tmp/linuxtest.log combined_realip;
}    

2、测试

[[email protected] vhost]# /usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[[email protected] vhost]# /usr/local/nginx/sbin/nginx -s reload
[[email protected] vhost]# echo "111111" > /data/wwwroot/linuxtest/test.js
[[email protected] vhost]# echo "111111" > /data/wwwroot/linuxtest/test.jpg
[[email protected] vhost]# echo "111111" > /data/wwwroot/linuxtest/test.ddd    //创建一个对比文件,后缀名不在配置列表内
[[email protected] vhost]# curl -x127.0.0.1:80 -u zlinux:1234566 linuxtest.com/test.js -I
HTTP/1.1 200 OKServer: nginx/1.12.2Date: Wed, 14 Mar 2018 07:45:47 GMTContent-Type: application/javascriptContent-Length: 7Last-Modified: Wed, 14 Mar 2018 07:44:42 GMTConnection: keep-aliveETag: "5aa8d2ea-7"Expires: Wed, 14 Mar 2018 19:45:47 GMTCache-Control: max-age=43200    //最大过期时间Accept-Ranges: bytes

[[email protected] vhost]# curl -x127.0.0.1:80 -u zlinux:123456 linuxtest.com/test.jpg -I
HTTP/1.1 200 OKServer: nginx/1.12.2Date: Wed, 14 Mar 2018 07:45:55 GMTContent-Type: image/jpegContent-Length: 7Last-Modified: Wed, 14 Mar 2018 07:45:05 GMTConnection: keep-aliveETag: "5aa8d301-7"Expires: Wed, 21 Mar 2018 07:45:55 GMTCache-Control: max-age=604800     //最大过期时间Accept-Ranges: bytes

[[email protected] vhost]# curl -x127.0.0.1:80 -u zlinux:123456linuxtest.com/test.ddd -I
HTTP/1.1 200 OKServer: nginx/1.12.2Date: Wed, 14 Mar 2018 07:46:01 GMTContent-Type: application/octet-streamContent-Length: 7Last-Modified: Wed, 14 Mar 2018 07:45:29 GMTConnection: keep-aliveETag: "5aa8d319-7"Accept-Ranges: bytes

[[email protected] vhost]# cat /tmp/linuxtest.log    //未记录指定后缀日志
127.0.0.1 - [14/Mar/2018:15:42:57 +0800] linuxtest.com "/1.gif" 404 "-" "curl/7.29.0"
127.0.0.1 - [14/Mar/2018:15:46:01 +0800] linuxtest.com "/test.ddd" 200 "-" "curl/7.29.0"

原文地址:http://blog.51cto.com/sdwaqw/2088606

时间: 2024-10-05 08:30:57

91.Nginx配置:访问日志,日志切割,静态文件不记录日志和过期时间的相关文章

Nginx访问日志 Nginx日志切割 静态文件不记录日志和过期时间

一.Nginx访问日志#vim /usr/local/nginx/conf/nginx.conf日志格式的名字combined_realip可以自定义,例如将它修改为aming,注意,这里定义为什么,后面引用的时候就定义为什么(nginx配置文件看见分号才是这一行结束)#vim /usr/local/nginx/conf/vhost/test.com.conf //增加如下一行#/usr/local/nginx/sbin/nginx -t#/usr/local/nginx/sbin/nginx

48.Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

一.Nginx访问日志 日志格式 vim /usr/local/nginx/conf/nginx.conf //搜索log_format combined_realip //规则名字 除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加 vim /usr/local/nginx/conf/vhost/test.com.conf 添加 access_log /tmp/1.log combined_realip; 这里的combined_realip就是在nginx.

Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间介绍

Nginx访问日志 1. 进入配置文件 [[email protected] src]# vim /usr/local/nginx/conf/nginx.conf  //搜索log_format 参考更改配置成如下: log_format aming '$remote_addr $http_x_forwarded_for [$time_local]' 如图: 日志格式字段含义如下: combined_realip为日志格式的名字,后面可以调用它. 2.到虚拟主机配置文件中指定访问日志的路径 [[

十二周三课 Nginx访问日志、 Nginx日志切割、 静态文件不记录日志和过期时间

Nginx访问日志 Nginx的文件格式存在于主配置文件中./usr/local/nginx/conf/nginx.conf然后搜索log_format找到他的配置文件这样我们就可以进行日志的格式配置了. 我们常用如下配置.$remote_addr客户端IP(公网IP)$http_x_forwarded_for代理服务器的IP$time_local服务器本地时间$host访问主机名(域名)$request_uri访问的url地址$status状态码$http_refererreferer$htt

四十八、Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

一.Nginx访问日志 日志格式 # pwd /usr/local/nginx/conf [[email protected] conf]# vim nginx.conf log_format ELA '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"'; 解析

Nginx访问日志、日志切割、静态文件不记录日志和过期时间

Nginx访问日志 Nginx访问日志主要有两个参数控制:log_format #用来定义记录日志的格式(可以定义多种日志格式,取不同名字即可)access_log #用来指定日至文件的路径及使用的何种日志格式记录日志 设置访问日志的格式,打开配置文件vim /usr/local/nginx/conf/nginx.conf 搜索关键字log_format就可以找到日志格式配置行log_format语法格式及参数语法说明如下:$remote_addr客户端IP(公网IP)$http_x_forwa

nginx访问日志、Nginx日志切割、 静态文件不记录日志和过期时间

一:nginx访问日志 日志格式vim /usr/local/nginx/conf/nginx.conf //搜索log_format$remote_addr 客户端ip(公网ip)$http_x_forwarded_for 代理服务器的ip$time_local 服务器本地时间$host 访问主机名(域名)$request_uri 访问的url地址$status 状态码$http_referer referer$http_user_agent user_agent除了在主配置文件nginx.c

Nginx的访问日志、Nginx的日志切割、Nginx静态文件不记录日志和过期时间

Nginx的访问日志 Nginx的日志切割 Nginx静态文件不记录日志和过期时间 原文地址:http://blog.51cto.com/13515599/2086909

Nginx访问日志、 Nginx日志切割、静态文件不记录日志和过期时间

1.Nginx访问日志 配制访问日志:默认定义格式: log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"';  (这是定义日志引用时的名字:combined_realip,后面的内容,就是需要被引用的)可以理

LNMP(3) 静态文件不记录日志和过期时间、Nginx防盗链、Nginx访问控制、解析php

                    静态文件不记录日志和过期时间 进入到虚拟主机配置文件 cd /usr/local/nginx/conf/vhost  编辑虚拟主机配置文件:vim test.com.conf  添加内容:   配置如下 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires      7d;    //过期时间 access_log off; } location ~ .*\.(js|css)$ { expires