day-44 網(wǎng)站服務(wù)配置過程

00.課程介紹部分
    1.nginx服務(wù)企業(yè)配置方法
         網(wǎng)站日志信息配置方法
    2.nginx服務(wù)location配置   匹配URI
    3.nginx服務(wù)rewrite配置    跳轉(zhuǎn)
    4.nginx服務(wù)訪問流量控制
01.課程知識回顧
    1.如何實現(xiàn)使用nginx部署多個網(wǎng)站頁面 www blog bbs (多個虛擬機配置)
        寫出多個配置文件  -->  分別創(chuàng)建站點目錄/首頁文件  --> 配置本地hosts信息

    2.網(wǎng)站頁面訪問方式
        基于ip地址訪問  -->  涉及到IP地址修改必須重啟不能reload
        基于域名訪問    -->  配置文件配好后直接訪問即可
        基于端口訪問    --> 修改配置文件 改端口后需  www.xxxxx:端口號 即可看見

    3.利用nginx搭建數(shù)據(jù)共享服務(wù)器
        在站點目錄創(chuàng)建共享數(shù)據(jù)資源
        必須刪除首頁文件
        修改配置文件   autoindex  on;

    4.網(wǎng)站頁面安全訪問控制
        a 根據(jù)用戶的IP地址做限制 allow(允許)  deny(禁止)
        b 根據(jù)認證方式進行訪問控制  location模塊下寫
            auth_basic            "oldboy";             
            auth_basic_user_file  /etc/nginx/password.txt

            htpasswd -bc /etc/nginx/password.txt xxx  xxxxxx
    5.訪問網(wǎng)頁連接線監(jiān)控功能
        可以實現(xiàn)查看用戶訪問連接數(shù)的信息
          編輯配置文件 /etc/nginx/conf.d/status.conf
            stub_status;    ---開啟監(jiān)控功能
          本地域名解析,即可查看
02. nginx服務(wù)訪問流量控制
        網(wǎng)站受到攻擊,使網(wǎng)站壓力過大
    方式一: 基于IP地址連接數(shù)進行控制  
        說明: 控制一個源IP地址只能建立1個連接
        
        http_limit_conn_module   模塊名稱
        配置指令信息:
        Syntax:     1
        Default:    —
        Context:    http
        
        key:   變量信息,在連接建立后,收集什么信息做控制管理
        · $remote_addr          變量的長度為7字節(jié)到15字節(jié)  存儲狀態(tài)在32位平臺中占用32字節(jié)或64字節(jié),在64位平臺中占用64字節(jié)。
        · $binary_remote_addr   變量的長度是固定的4字節(jié)        存儲狀態(tài)在32位平臺中占用32字節(jié)或64字節(jié),在64位平臺中占用64字節(jié)。  
          1M共享空間可以保存3.2萬個32位的狀態(tài),1.6萬個64位的狀態(tài)。
        zone:  定義共享存儲空間
        · name: 存儲空間的名稱信息
        · size: 存儲空間大小信息
        
        Syntax:     limit_conn zone number;
        Default:    —
        Context:    http, server, location
        
        zone:    調(diào)用響應的存儲空間
        number:  限制存儲空間源IP地址可以處理的數(shù)量
        
        配置樣例:
        [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字節(jié)到15字節(jié)  存儲狀態(tài)在32位平臺中占用32字節(jié)或64字節(jié),在64位平臺中占用64字節(jié)。
        · $binary_remote_addr   變量的長度是固定的4字節(jié)        存儲狀態(tài)在32位平臺中占用32字節(jié)或64字節(jié),在64位平臺中占用64字節(jié)。  
          1M共享空間可以保存3.2萬個32位的狀態(tài),1.6萬個64位的狀態(tài)。
        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服務(wù)程序日志說明
    1.訪問日志:記錄訪問網(wǎng)站用戶信息
        訪問日志如何配置: 
        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              記錄網(wǎng)站認證用戶的用戶名稱信息
        [$time_local]             客戶端訪問網(wǎng)站頁面的時間
        "$request"                記錄請求報文中的請求行信息
        $status                   服務(wù)端響應的狀態(tài)碼信息
        $body_bytes_sent          響應報文的主體內(nèi)容大小信息(字節(jié))
        "$http_referer"           記錄跳轉(zhuǎn)到網(wǎng)站,鏈接地址 (也可芳盜鏈)
        "$http_user_agent"        記錄訪問者客戶端信息
        "$http_x_forwarded_for"   ????

    2.錯誤日志:記錄服務(wù)運行狀態(tài)信息/記錄網(wǎng)站訪問錯誤的信息
        錯誤日志如何配置:
        error_log /var/log/nginx/error.log  warn;  指定日志保存路徑/指定記錄日志級別
        常見調(diào)試/運行狀態(tài)信息
        debug     調(diào)試級別          最低級別記錄的信息更多
        info      信息級別
        notice    通知級別

        warn    警告級別(建議)      一般設(shè)置為中間級別即可
        產(chǎn)生信息表示服務(wù)運行異常
        error   錯誤級別
        crit    嚴重的錯誤級別
        alert   非常嚴重的錯誤級別 
        emerg   災難級別            最高級別記錄的信息更少
04.課程知識總結(jié)說明:
    1.nginx網(wǎng)站流量訪問控制
        a 基于源ip地址連接數(shù)進行控制
        b 基于源ip地址請求數(shù)進行控制
    2.nginx網(wǎng)站日志功能配置
        a 訪問日志配置方法(日志格式信息)
        b 錯誤日志配置方法(錯誤日志級別)
    3.如何進行壓力測試
        yum install -y httpd-tools
        ab -c 指定并發(fā)數(shù)量 -n 共發(fā)送多少請求 http://www.oldboy.com/
作業(yè):
01. 三個網(wǎng)站都有自己的訪問日志
    www網(wǎng)站  --- www_access.log 
    bbs網(wǎng)站  --- bbs_access.log 
    blog網(wǎng)站 --- blog_access.log  
02. 如何統(tǒng)計一天網(wǎng)站上傳消耗的流量  
    1M網(wǎng)絡(luò)流量
    1M數(shù)據(jù)存儲  
    awk '{sum=sum+$10}END{print sum*8/1024}' /var/log/nginx/www.log
    sum*8=bit
    sum*8/1024=kb
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容