NGINX 的一些记录

版权声明:本文为博主原创文章,未经博主允许不得转载。如需转载,加上原文链接即可~~ https://blog.csdn.net/hpulfc/article/details/83619543

nginx :

启动/停止/重启/重新载入:

sudo /etc/init.d/nginx  start/stop/restart/reload  (如果是源码安装 就是bin 下面的nginx文件)

nginx 速率限制:

  1. limit_rate_after  10m;
  2. limit_rate 20k;

表示在响应超过10M的时候,速率限制为20k

nginx 并发连接配置:

  1. limit_conn_zone  $binary_remote_addr  zone=one:10m;  # 定义 数据区,来记录会话状态信息 ,后面有区块名,变量 和大小
  2.  limie_conn one 10;  

第一个个是在http 块 里面 后面的是可以在server location http 块里面,这里表示 一个会话最多10 个连接,可以记录大约32w个会话消息,数量是根据

会话信息的长度为 32 或 64 bytes。 而 $binary_remote_addr 的长度为 4 bytes,会话信息的长度为 32 bytes。 当 zone 的大小为 1M 的时候,大约可以记录 32000 个会话信息 ==> 1024 * 1000 / 32 = 32000

nginx 简单访问控制:

  1. allow address | CIDR | unix: | all
  2. deny address | CIDR | unix: | all 

可以在 http server location limit_except 块中使用, 表示 允许访问的 和 拒绝访问的。

例如:

 

location / {

    deny  192.168.1.1;

    allow 192.168.1.0/24;

    allow 10.1.1.0/16;

    allow 2001:0db8::/32;

    deny  all;

}

nginx 限制每秒的请求数:

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
    ...
    server {
        ...
        location  ~ \.php$ {
            limit_req zone=one burst=5 nodelay;  
               }
           }
     }
  1. $binary_remote_addr 二进制远程地址
  2. zone=one:10m 定义zone名字叫one,并为这个zone分配10M内存,用来存储会话(二进制远程地址)
  3. rate=10r/s; 限制频率为每秒10个请求
  4. burst=5 允许超过频率限制的请求数不多于5个,假设1、2、3、4秒请求为每秒9个,那么第5秒内请求15个是允许的,反之,如果第一秒内请求15个,会将5个请求放到第二秒,第二秒内超过10的请求直接503,类似多秒内平均速率限制。
  5. nodelay 超过的请求不被延迟处理,设置后15个请求在1秒内处理。

设置白名单:

geo $whiteiplist  {
        default 1;
        10.11.15.161 0;
    }
map $whiteiplist  $limit {
        1 $binary_remote_addr;
        0 "";
    }
limit_req_zone $limit zone=one:10m rate=10r/s;
limit_conn_zone $limit zone=addr:10m;

geo 模块定义了一个默认值是 1 的变量 whiteiplist,当在 ip 在白名单中,变量 whiteiplist 的值为 0,反之为 1


如果在白名单中--> whiteiplist=0 --> $limit="" --> 不会存储到 10m 的会话状态(one 或者 addr)中 --> 不受限制;

反之,不在白名单中 --> whiteiplist=1 --> $limit=二进制远程地址 -->存储进 10m 的会话状态中 --> 受到限制。

一般的配置,设置代理等等,后面更新。

猜你喜欢

转载自blog.csdn.net/hpulfc/article/details/83619543