网站服务配置过程 nginx Ⅲ

1. nginx服务访问流量控制
网站受到攻击,使网站压力过大
  • 方式一: 基于IP地址连接数进行控制
    说明: 控制一个源IP地址只能建立1个连接
  • 使用模块
    http_limit_conn_module
    配置指令信息:
    Syntax: limit_conn_zone key zone=name:size;
    Default: —
    Context: http
    key: 变量信息,在连接建立后,收集什么信息做控制管理
    · $remote_addr 变量的长度为7字节到15字节 存储状态在32位平台中占用32字节或64字节,在64位平台中占用64字节
    · $binary_remote_addr 变量的长度是固定的4字节 存储状态在32位平台中占用32字节或64字节,在64位平台中占用64字节。
    1M共享空间可以保存3.2万个32位的状态,1.6万个64位的状态。
    zone: 定义共享存储空间
    · name: 存储空间的名称信息
    · size: 存储空间大小信息

    配置指令信息:
    Syntax: limit_conn zone number;
    Default: —
    Context: http, server, location
    zone: 调用响应的存储空间
    number: 限制存储空间源IP地址可以处理的数量
配置样例:
[root@web02 conf.d]# cat www.conf 
limit_conn_zone $binary_remote_addr zone=oldboy:10m;
server {
  listen        80;
  server_name   www.oldboy.com;
  root         /html/www;
  index        index.html;
  limit_conn oldboy 1;
}
  • 方式二: 基于用户访问请求的频次
  • 使用模块
    http_limit_req_module
    配置指令信息:
    Syntax: limit_req_zone key zone=name:size rate=rate [sync];
    Default: —
    Context: http
    key: 变量信息,在连接建立后,收集什么信息做控制管理
    · $remote_addr 变量的长度为7字节到15字节 存储状态在32位平台中占用32字节或64字节,在64位平台中占用64字节
    · $binary_remote_addr 变量的长度是固定的4字节 存储状态在32位平台中占用32字节或64字节,在64位平台中占用64字节。
    1M共享空间可以保存3.2万个32位的状态,1.6万个64位的状态。
    zone: 定义共享存储空间
    · name: 存储空间的名称信息
    · size: 存储空间大小信息
    rate: 多个请求频次信息
    配置指令信息
    Syntax: limit_req zone=name [burst=number] [nodelay];
    Default: —
    Context: http, server, location
    burst=number: 最大的请求阈值, 超过阈值请求都会进行控制
配置样例
[root@web02 conf.d]# cat www.conf 
limit_req_zone $binary_remote_addr zone=creq:10m rate=1r/s;
server {
  listen        80;
  server_name   www.oldboy.com;
  root         /html/www;
  index        index.html;
  limit_req zone=creq burst=10;

}
2. nginx服务程序日志说明
  • 访问日志: 记录访问网站用户信息
    访问日志如何配置:
    log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 定义日志信息格式
    '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main; 定义日志保存路径
  • 访问日志的信息说明:
    $remote_addr 客户端源IP地址
    $remote_user 记录网站认证用户名称信息
    [$time_local] 客户端访问网站页面时间信息
    "$request" 记录请求行信息
    $status 服务端响应的状态码信息
    $body_bytes_sent 响应报文的主体内容大小信息(字节)
    "$http_referer" 记录跳转到网站,链接地址
    "$http_user_agent" 记录访问者客户端信息
    "$http_x_forwarded_for" 记录客户端真实地址
  • 错误日志: 记录服务运行状态信息/记录网站访问错误的信息
    错误日志如何配置:
    error_log /var/log/nginx/error.log warn; 指定日志保存路径/指定记录日志级别
  • 常见调试/运行状态信息
    debug 调试级别 对低级别记录信息更多
    info 信息级别
    notice 通知级别
    warn 警告级别(建议)
    error 错误界别 ***
    crit 严重的错误级别
    alert 非常验证的错误级别
    emerg 灾难级别 最高级别记录的信息更少
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值