day44网站服务配置过程

  • nginx服务访问流量控制

  • nginx服务企业配置方法(网站日志信息配置方法)

1.nginx服务访问流量控制

方式一:基于IP地址连接数进行控制
  说明:控制一个源IP地址只能建立一个链接
  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位的状态。
  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服务程序日志说明
1.访问日志:记录访问网站用户信息
访问日志如何配置:(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" 获取用户真实ip

2.错误日志,记录服务运行状态信息系/记录网站访问错误的信息
错误日志如何配置:

error_log  /var/log/nginx/error.log warn;  指定日志保存路径/指定记录日志级别
    常见调试/运行状态信息
    debug   调试级别               对低级别记录信息更多
    info    信息级别
    notice  通知级别
    warn    警告级别(建议)         ***
    产生信息表示服务运行异常
    error   错误级别               ***
    crit    严重的错误级别
    alert   非常验证的错误级别
    emerg   灾难级别               最高级别记录的信息更少

3.每个网站都有自己的访问日志

例:www网站  --- www_access.log 
    bbs网站  --- bbs_access.log 
    blog网站 --- blog_access.log

配置样例:
[root@web02 conf.d]# cat www.conf 
    server {
      listen        80;
      server_name   www.oldboy.com;
      root         /html/www;
      index        index.html;
      access_log /www/logs/www-access.log main;   --- 日志所在目录必须存在
    }
这里的main调取的是nginx主配置文件日志格式,也可以自己创建日志格式来调取。

默认使用nginx主配置日志格式情况下统计网站上传消耗的流量
[root@web02 conf.d]# awk '{sum=sum+$10}END{print sum*8/1024/1024}' /www/logs/www-access.log
    1.19699
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容