nginx(tengine)的一些小优化(持续更新)

1、nginx日志切割脚本

需求来源:nginx本身并没有日志切割的功能,由访问产生的大日志很难进行分析。

实现目的:每天对nginx日志进行切割,并备份至指定文件夹。

简要指令:

mv /usr/local/tengine/logs/access.log /usr/local/tengine/logs/access-date.log

kill -USER1 Nginx主进程号。

解释:

通过mv命令重命名日志,并且通过kill -USER1 nginx-id的命令,告诉nginx需要写新的日志。

我们可以通过nginx.pid文件来获取nginx的主进程号。

  kill -USER1`cat /usr/local/tengine/logs/nginx.pid`

PS:如果不知道nginx.pid文件在哪的话,可以直接在nginx目录,或者服务器根目录搜索:find / -name nginx.pid

详细脚本如下:

#######################################################################

#!/bin/bash

logs_bak_path="/usr/local/tengine/logs/nginx_log"

logs_path="/usr/local/tengine/logs"

TIME=`date "+%Y-%m-%d"`

mv $logs_path/access.log $logs_bak_path/access.$TIME.log

kill -USER1`cat /usr/local/tengine/logs/nginx.pid`

#######################################################################

将脚本保存至nginx的sbin目录,与nginx主程序同级。

然后使用crontab -e打开linux的定时执行编辑,增加如下配置:

59 23 * * * . /root/.bash_profile; /usr/local/tengine/sbin/cut_nginx_log.sh >/dev/null 2>&1

如果要分析日志的话,大家可以使用:goaccess 这个工具对日志进行分析,稍后会单开一个随笔,单独介绍nginx的日志分析。

时间: 2024-10-10 04:49:34

nginx(tengine)的一些小优化(持续更新)的相关文章

Mysql注入小tips --持续更新中

学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说说这些天研究的 这里博主以数字类型注入类型进行讲解,字符类型同理,这里不在敖述. 我们的环境:phpstudy+mysql+php 我们的测试代码如下: <meta http-equiv="Content-Type" content="text/html; charset=

关于MYSQL优化(持续更新)

*利用MYSQL数据缓存提高效率,注意事项: 1.应用环境:不经常改变的表及对此表相同的查询 2.不适用于服务器端编写的语句 3.根据数据使用频率,合理分解表 4.合理使用默认条件,提高命中率 5.统一SQL语句编写规范,因为MYSQL解析时区分大小写 6.增加服务器缓存空间 *为查询缓存,优化查询语句: // 查询缓存不开启 $r = mysql_query("SELECT username FROM user WHERE signup_date >= CURDATE()");

golang 小知识-持续更新中

Go 的原生数据类型可以分为基本类型和高级类型,基本类型主要包含 string, bool, int 及 float 系列,高级类型包含 struct,array/slice,map,chan, func . 相比 Java,Python,Javascript 等引用类型的语言,Golang 拥有类似C语言的指针这个相对古老的特性.但不同于 C 语言,Golang 的指针是单独的类型,而不是 C 语言中的 int 类型,而且也不能对指针做整数运算.从这一点看,Golang 的指针基本就是一种引用

Java常见小知识点(持续更新...)

1.在什么场景下需要重写hashcode?HashMap的实现原理? 如果我们对equals()方法进行了重写,一般对hashcode进行重写,保证相同的对象返回相同的hash值 HashMap实际上是一个"链表散列"的数据结构,即数组和链表的组合 当我们向HashMap中put值的时候,先计算key的hash值,再根据hash值来计算出这个key在数组中的下标(通过hash与数组长度-1的位与运算,也正是因此,map长度都是2的次方,因为要保证length-1  都是 )如果数组该位

SQL语句效率优化--持续更新

1 delete与in搭配使用,效率特别低,如下可解决该问题,not in同理 /*正常写法*/ DELETE from activity where id in ( SELECT id from activity_data); /*优化后写法*/ DELETE from activity where id in (select * from (SELECT id from activity_data) t); 原文地址:https://www.cnblogs.com/cdut-yy/p/120

Python小知识点(持续更新)

1.Python2字符编码 #coding:utf-8 ''' 上面的代码将环境编码设置为utf-8,没有上面的代码,将使用环境默认编码,环境默认编码可由sys.getdefaultencoding()获得 ''' s = '中国' #s是utf-8格式的str,因为上面的代码将环境编码设置为utf-8 u = s.decode('utf-8') #u是unicode对象 s.encode('gbk') #等价于s.decode('utf-8').encode('gbk') ''' 在计算机内存

iOS--开发小技巧(持续更新)

// 模糊效果 UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; UIVisualEffectView *test = [[UIVisualEffectView alloc] initWithEffect:effect]; test.frame = self.view.bounds; test.alpha = 0; [self.view addSubview:test]; _mytext =

django项目实际工作中的配置以及一些有用的小工具(持续更新)

常用pycharm快捷键:   https://www.cnblogs.com/luolizhi/p/5610123.html Ctrl + F1  显示错误 Ctrl + Alt + Space  快速导入任意类 Ctrl + /    行注释/取消行注释 Ctrl + Shift + /    块注释 Ctrl + Alt + I    自动缩进 Ctrl + P    参数信息(在方法中调用参数) Ctrl + D  复制选定的区域或行 Ctrl + Y    删除选定的行  2.查找/替

一些实战中的小技巧 (持续更新中)

经常使用的目录或命令,使用alias,减少打字数量 # 显示所有的别名 alias -p # 创建 alias gopro='cd /root/username/dir/project' alias pidpy='ps -ef | grep python' # 取消 unalias gopro 原文地址:https://www.cnblogs.com/wangjiale1024/p/11293772.html