nginx系列(六)----对日志切割

nginx对日志的管理:
对nginx的日志查看有固定的目录:/usr/local/nginx/logs/,在这个目录里面我们查看我们的错误等。
如果我们需要实时的获取日志,我们也可以获取
我们也可以进行限速

因为nginx的access.log日志会保存所有客户端连接信息,普通网站每天请求量很大,所以要每天切割(可以用nginx自带的reopen)

在这里插入图片描述
在这里插入图片描述
多次请求页面,再查看日志大小
ab -c 1 -n 100000 http://www.chen.org##1个并发,10000次请求在这里插入图片描述
查看日志大小
du -sh access.log
在这里插入图片描述

首先保存之前的日志
mv access.log date +%F -d -1day_access.log ##因为第二天肯定是备份前一天的日志
/usr/local/nginx/sbin/nginx -s reopen
#发现重新生成了一个access.log,新的请求信息会到新日志里
#可以把命令写在crontab里,每天执行一次
在这里插入图片描述

我们经常会遇到这种情况,服务器流量异常,负载过大等等。对于大流量恶意的攻击访问,会带来带宽的浪费,服务器压力,影响业务,往往考虑对同一个ip的连接数,并发数进行限制

限制链接数 ##看管网,docs.nginx.com --> NGINX Plus --> Admin Guide --> Security Controls --> Limiting Access to Proxied HTTP Resources
vim nginx.conf
keepalive_timeout 65;
#gzip on;
#limit_conn_zone 用来限制同一时间连接数,即并发限制
#limit_req_zone 用来限制单位时间内的请求数,即速率限制,采用的漏桶算法 “leaky bucket”
$binary_remote_addr 是限制同一客户端ip地址
zone=one:10m 表示生成一个大小为10M,名字为one的内存区域,用来存储访问的频次信息
# 定义一个名为addr的limit_conn_zone $binary_remote_addr是限制同一客户端ip地址
#以下两条语句写在server2里面的配置文件
limit_conn_zone $binary_remote_addr zone=addr:10m; #大小是10M内存 10M的内存来对于IP传输开销
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; #1s中不超过一个请求

...

    location / {
        root   html;
        index  index.html index.htm;
    }

location /download {
    limit_conn addr 1;	##只能一个并发,多了会报错
    limit_rate 50k;	##限制带宽,每秒最多50k,
}

在这里插入图片描述
mkdir /usr/local/nginx/html/download
#给download目录里放一个vim.jpg(约400k)
在这里插入图片描述
ab -c 10 -n 1000 http://172.25.10.2/download/vim.jpg
每次发送10个并发的请求数,请求数总数为100,这时我们查看error.log会出现错误提示。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值