记一次Nginx 限流配置

nginx 常用命令

   nginx -t  #检查nginx配置文件是否配置正确   successful表示配置可用
   nginx -s reload #重新加载配置文件使配置生效
   nginx -s stop #停止nginx
   nginx -V # 查看配置信息
   service nginx stop     # 停止nginx服务
   service nginx start    # 启动nginx服务
   service nginx restart  # 重启nginx服务

最简单的静态页面配置

server{
    # 监听的端口
    listen 8888;
    # 解析的路径
    root /home/sinmu/www/test;
    # 域名
    server_name 127.0.0.1;

    # 在当前根目录下自动解析 index 和 test.html
    location / {
            index test.html;
    }
}

使用 nginx 的默认配置的时候,它的日志文件一般在 /var/log/nginx/error.log,可以通过 tail 命令来监控日志


限流配置

  • 按连接数限速,并发数(ngx_http_limit_conn_module)
  • 按请求速率限速,按照 IP 限制单位时间内的请求数(ngx_http_limit_req_module)
    • 该ngx_http_limit_req_module模块用于限制每个定义键的请求处理速率,特别是来自单个 IP 地址的请求的处理速率。限制是使用“漏桶”方法完成的。

主要分为两步

  1. 创建规则, limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
    • 创建规则需要在 http 模块里创建
  2. 使用规则,limit_req zone=mylimit burst=1 nodelay;
    • 使用规则需要在 server 模块里面去使用
    • burst=1 ,如果没有这句的时候,他会严格按照上 请求速率为1个请求每秒 来处理请求。
    • 当你设置了之后,可以面对突发情况,可以有个缓存,缓存一个请求。
    • 突发浏览的时候不会直接拒绝,而是保留一个缓存空间的。

    关于delay的介绍

# 创建规则限制请求速率 limit_req ,以某一个key限制这个请求速率为1个请求每秒,这个key就是当前用户的IP,申请的空间是10M,
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
server{
    # 监听的端口
    listen 8888;
    # 解析的路径
    root /home/sinmu/www/test;
    # 域名
    server_name 127.0.0.1;

    # 在当前根目录下自动解析 index 和 test.html
    location / {
        # limit_req zone=mylimit 应用这个规则,
        limit_req zone=mylimit burst=1 nodelay;
        index test.html;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python小叮当

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值