day-44 网站服务配置过程

00.课程介绍部分
    1.nginx服务企业配置方法
         网站日志信息配置方法
    2.nginx服务location配置   匹配URI
    3.nginx服务rewrite配置    跳转
    4.nginx服务访问流量控制
01.课程知识回顾
    1.如何实现使用nginx部署多个网站页面 www blog bbs (多个虚拟机配置)
        写出多个配置文件  -->  分别创建站点目录/首页文件  --> 配置本地hosts信息

    2.网站页面访问方式
        基于ip地址访问  -->  涉及到IP地址修改必须重启不能reload
        基于域名访问    -->  配置文件配好后直接访问即可
        基于端口访问    --> 修改配置文件 改端口后需  www.xxxxx:端口号 即可看见

    3.利用nginx搭建数据共享服务器
        在站点目录创建共享数据资源
        必须删除首页文件
        修改配置文件   autoindex  on;

    4.网站页面安全访问控制
        a 根据用户的IP地址做限制 allow(允许)  deny(禁止)
        b 根据认证方式进行访问控制  location模块下写
            auth_basic            "oldboy";             
            auth_basic_user_file  /etc/nginx/password.txt

            htpasswd -bc /etc/nginx/password.txt xxx  xxxxxx
    5.访问网页连接线监控功能
        可以实现查看用户访问连接数的信息
          编辑配置文件 /etc/nginx/conf.d/status.conf
            stub_status;    ---开启监控功能
          本地域名解析,即可查看
02. nginx服务访问流量控制
        网站受到攻击,使网站压力过大
    方式一: 基于IP地址连接数进行控制  
        说明: 控制一个源IP地址只能建立1个连接
        
        http_limit_conn_module   模块名称
        配置指令信息:
        Syntax:     1
        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;
        
        }
03.nginx服务程序日志说明
    1.访问日志:记录访问网站用户信息
        访问日志如何配置: 
        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"   ????

    2.错误日志:记录服务运行状态信息/记录网站访问错误的信息
        错误日志如何配置:
        error_log /var/log/nginx/error.log  warn;  指定日志保存路径/指定记录日志级别
        常见调试/运行状态信息
        debug     调试级别          最低级别记录的信息更多
        info      信息级别
        notice    通知级别

        warn    警告级别(建议)      一般设置为中间级别即可
        产生信息表示服务运行异常
        error   错误级别
        crit    严重的错误级别
        alert   非常严重的错误级别 
        emerg   灾难级别            最高级别记录的信息更少
04.课程知识总结说明:
    1.nginx网站流量访问控制
        a 基于源ip地址连接数进行控制
        b 基于源ip地址请求数进行控制
    2.nginx网站日志功能配置
        a 访问日志配置方法(日志格式信息)
        b 错误日志配置方法(错误日志级别)
    3.如何进行压力测试
        yum install -y httpd-tools
        ab -c 指定并发数量 -n 共发送多少请求 http://www.oldboy.com/
作业:
01. 三个网站都有自己的访问日志
    www网站  --- www_access.log 
    bbs网站  --- bbs_access.log 
    blog网站 --- blog_access.log  
02. 如何统计一天网站上传消耗的流量  
    1M网络流量
    1M数据存储  
    awk '{sum=sum+$10}END{print sum*8/1024}' /var/log/nginx/www.log
    sum*8=bit
    sum*8/1024=kb

你可能感兴趣的:(day-44 网站服务配置过程)