为nginx做日志切割一例

[不指定 2015/09/17 15:03 | by admin ]
nginx安装于/home/web/nginx/
默认日志位于/home/web/nginx/logs/
开设的网站日志存放于/home/logs/目录
对于每天产生的日志,按日期建立目录,把当天的nginx日志移到日期目录内,再重启nginx而产生记录新日志,并过过期日志做自动删除

任务计划如下:
echo "59 23 * * * /home/web/nginx/sbin/cut.sh"  >>/var/spool/cron/root

/home/web/nginx/sbin/cut.sh
内容如下:
#!/bin/bash
# This script will run at 23:59 everyday and will del 10 days ago's log by auto
# The Nginx logs path
logs_path="/home/logs/"
mkdir -p ${logs_path}/$(date -d "today" +"%Y%m%d")
mv ${logs_path}/*.log ${logs_path}/$(date -d "today" +"%Y%m%d")/
mv /home/web/nginx/logs/access.log ${logs_path}//$(date -d "today" +"%Y%m%d")/
mv /home/web/nginx/logs/error.log ${logs_path}//$(date -d "today" +"%Y%m%d")/
rm -rf ${logs_path}/$(date +%Y%m%d -d '10 days ago')
kill -USR1 `cat /home/web/nginx/logs/nginx.pid`
nginx自从1.1.8版本发布后将limit_conn更换为limit_conn_zone

1.添加limit_zone   这个变量只能在http使用
nginx.conf中:
http {   } 段内添加:
    limit_conn_zone $binary_remote_addr zone=perip:10m;

2.添加limit_conn   这个变量可以在http, server, location使用
针对某个站点,可以直接加到站内配置文件中,如:

        location / {
                index  index.html index.htm index.php;
        limit_conn perip 1;
        limit_rate 100k;
        }

也可以单独加段 location,并配置上要限制的目录

        location /data/ {
        limit_conn perip 1;
        limit_rate 100k;
        }

说明:
limit_conn perip 10;    每个IP使用10个连接
limit_rate 100k;        限制1个连接速度为100k
Tags:
linux下查看nginx,apache,mysql,php的编译参数

1、nginx编译参数:
#/usr/local/nginx/sbin/nginx -V

2、apache编译参数:
# cat /usr/local/apache/build/config.nice

3、php编译参数:
# /usr/local/php/bin/php -i |grep configure

4、mysql编译参数:
# cat /usr/local/mysql/bin/mysqlbug|grep configure
一、介绍Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.
二、Location语法语法:location [=|~|~*|^~] /uri/ { … }
注:
1、~ 为区分大小写匹配
2、~* 为不区分大小写匹配
3、!~和!~*分别为区分大小写不匹配及不区分大小写不匹配
示例一:
location / { }
匹配任何查询,因为所有请求都以 / 开头。但是正则表达式规则将被优先和查询匹配。
示例二:
location =/ {}
仅仅匹配/
示例三:
location ~* \.(gif|jpg|jpeg)$ {
rewrite \.(gif|jpg)$ /logo.png;

注:不区分大小写匹配任何以gif,jpg,jpeg结尾的文件
三、ReWrite语法
last – 基本上都用这个Flag。
break – 中止Rewirte,不在继续匹配
redirect – 返回临时重定向的HTTP状态302
permanent – 返回永久重定向的HTTP状态301
1、下面是可以用来判断的表达式:
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行
2、下面是可以用作判断的全局变量
例:http://localhost:88/test1/test2/test.php
$host:localhost
$server_port:88
$request_uri:http://localhost:88/test1/test2/test.php
$document_uri:/test1/test2/test.php
$document_root:D:\nginx/html
$request_filename:D:\nginx/html/test1/test2/test.php
四、Redirect语法
server {
listen 80;
server_name start.igrow.cn;
index index.html index.php;
root html;
if ($http_host !~ “^star\.igrow\.cn$" [点击图片可在新窗口打开] {
rewrite ^(.*) http://star.igrow.cn$1 redirect;
}
}
五、防盗链location ~* \.(gif|jpg|swf)$ {
valid_referers none blocked start.igrow.cn sta.igrow.cn;
if ($invalid_referer) {
rewrite ^/ http://$host/logo.png;
}
}
六、根据文件类型设置过期时间
location ~* \.(js|css|jpg|jpeg|gif|png|swf)$ {
if (-f $request_filename) {
expires 1h;
break;
}
}
七、禁止访问某个目录
location ~* \.(txt|doc)${
root /data/www/wwwroot/linuxtone/test;
deny all;
}

Tags:
分页: 1/4 第一页 1 2 3 4 下页 最后页 [ 显示模式: 摘要 | 列表 ]