为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`
默认日志位于/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 ip并发数和限制速度
[ 2015/09/17 14:54 | by admin ]
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
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
linux下查看nginx,apache,mysql,php的编译参数
[ 2010/06/11 14:46 | by admin ]
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
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学习之Location,rewrite,防盗链,禁止访问
[ 2010/06/03 20:09 | by admin ]
一、介绍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;
}
二、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;
}