chrony汗侵、rsyslog幸缕、sudo、nginx模塊

1晰韵、搭建時(shí)間服務(wù)器发乔,日志服務(wù)器并簡(jiǎn)述sudo安全切換

  • 搭建時(shí)間服務(wù)器

Linux操作系統(tǒng)中大家熟悉的時(shí)期服務(wù)器有兩個(gè):

ntp
chrony
  • 這里我們以chrony來搭建時(shí)間服務(wù)器
    chrony是一個(gè)ntp協(xié)議的實(shí)現(xiàn)程序,既可以當(dāng)做服務(wù)端雪猪,也可以充當(dāng)客戶端栏尚;它專為間歇性互聯(lián)網(wǎng)連接的系統(tǒng)而設(shè)計(jì),當(dāng)然也能良好應(yīng)用于持久互聯(lián)網(wǎng)連接的環(huán)境只恨;chrony有三個(gè)時(shí)間參考:硬件時(shí)鐘译仗、實(shí)時(shí)時(shí)鐘以及手動(dòng)同步。
    • chrony的程序安裝
      [root@node01 ~]# yum -y install chrony
    
    • chrony的程序環(huán)境
    [root@node01 ~]# rpm -ql chrony
    ...
    /etc/chrony.conf        #主配置文件
    /usr/bin/chronyc        #客戶端程序
    /usr/sbin/chronyd       #服務(wù)端程序
    
    • chrony配置服務(wù)端
    [root@node01 ~]# vim /etc/chrony.conf
    兩個(gè)主要配置:
    server cn.pool.ntp.org iburst    #1坤次、格式為:server  時(shí)間服務(wù)器域名  iburst
    allow 10.192.0.0/16  #允許指定網(wǎng)段的客戶端進(jìn)行時(shí)間同步
    [root@node01 ~]# systemctl  enable chronyd
    [root@node01 ~]# systemctl  start chronyd
    
    • chrony客戶端配置
    [root@ceph_deploy ~]# yum -y install chrony
    [root@ceph_deploy ~]# vim /etc/chrony.conf
    一個(gè)主要配置
    server 10.192.2.222 iburst   #server指向時(shí)間服務(wù)器ip地址或域名
    [root@ceph_deploy ~]# systemctl  enable chronyd
    [root@ceph_deploy ~]# systemctl  start chronyd
    
    • 客戶端測(cè)試
    [root@ceph_deploy ~]# chronyc sources
    210 Number of sources = 1
    MS Name/IP address         Stratum Poll Reach LastRx Last sample               
    ===============================================================================
    ^* ns1.peaoguo.com               3   6   377    40  +4852us[-2383us] +/-  159ms
     或者ntpdate測(cè)試
    [root@ceph_deploy ~]# ntpdate 10.192.2.222
    22 Mar 16:04:13 ntpdate[2314700]: adjust time server 10.192.2.222 offset -0.009135 sec
    
  • 搭建日志服務(wù)器收集bash命令日志

通常我們想知道某個(gè)用戶在服務(wù)器上到底執(zhí)行了那些命令古劲,以備后續(xù)做故障分析和審計(jì)分析等等,這了我們用rsyslog收集日志缰猴,并轉(zhuǎn)發(fā)給mysql服務(wù)器,然后通過web頁面進(jìn)行展示疤剑,設(shè)計(jì)方案如下:


rsyslog日志轉(zhuǎn)發(fā)過程
  • 環(huán)境準(zhǔn)備
    為了方便滑绒,我這里將web和日志轉(zhuǎn)發(fā)放在一臺(tái)服務(wù)器(10.192.2.222)闷堡,將Mariadb和客戶端放在一臺(tái)服務(wù)器(10.192.1.161),
    1疑故、客戶端服務(wù)器和日志轉(zhuǎn)發(fā)服務(wù)器均安裝rsyslog服務(wù)杠览,默認(rèn)操作系統(tǒng)已經(jīng)安裝rsyslog服務(wù),如果沒有運(yùn)行如下命令
    yum -y install rsyslog
    2纵势、數(shù)據(jù)庫服務(wù)器安裝安裝Mariadb,和授權(quán)
    yum -y install mariadb-server
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON Syslog.* TO rsyslog@10.192.2.222 IDENTIFIED BY 'rsyslog'
    3踱阿、安裝LogAnalyzer及web服務(wù)
    LogAnalyzer軟件下載地址http://loganalyzer.adiscon.com/
    上傳 loganalyzer-4.1.7.tar.gz 安裝包至web服務(wù)器

    [root@node01 ~]# tar -xzvf  loganalyzer-4.1.7.tar.gz  -C /data/
    [root@node01 ~]# cd /data
    [root@node01 data]# ln -vs loganalyzer-4.1.7  rsyslog
    [root@node01 data]# yum -y install httpd
    [root@node01 data]# vim /etc/httpd/conf.d/rsyslog.conf
    <VirtualHost 10.192.2.222:80>
         ServerName www.rsyslog.com
         DocumentRoot  "/data/rsyslog"
         <Directory "/data/rsyslog">
           Options None
           AllowOverride None
           Require all granted
        </Directory>
    </VirtualHost>
    [root@node01 data]# systemctl start httpd
    
  • 客戶端配置
    思路:將bash命令按照一定格式保存在一個(gè)文件中,在通過rsyslog的轉(zhuǎn)發(fā)功能將其轉(zhuǎn)發(fā)給日志收集服務(wù)器钦铁,

    創(chuàng)建一個(gè)任何人都只有追加權(quán)限的文件
    [root@ceph_deploy ~]# mkdir -p /var/log/bash/
    [root@ceph_deploy ~]# touch /var/log/bash/bash.log 
    [root@ceph_deploy ~]# chown nobody:nobody /var/log/bash/bash.log
    [root@ceph_deploy ~]# chmod 002 /var/log/bash/bash.log
    [root@ceph_deploy ~]# chattr +a /var/log/bash/bash.log
    
    添加環(huán)境變量软舌,將每一條命令日志存入上面創(chuàng)建的文件中
    [root@ceph_deploy ~]# vim /etc/profile
    export HISTORY_FILE=/var/log/bash/bash.log
    export SRC_IP=`who am i |awk '{ print $5}'|sed 's/(//g'|sed 's/)//g'`
    export PROMPT_COMMAND='{ date "+%F %T #### USER:$USER  IP:$SRC_IP PS:$SSH_TTY ppid=$PPID pwd=$PWD #### $(history 1 | { read x cmd; echo "$cmd"; })";} >>$HISTORY_FILE'
    [root@ceph_deploy ~]# source /etc/profile
    
    配置rsyslog
    #load imfile module
    $ModLoad imfile
    $WorkDirectory /etc/rsyslog.d
    $PrivDropTOGroup root
    $InputFilePollInterval 1
    $InputFilePersistStateInterval 1
    
    #bash.log
    $InputFileName /var/log/bash/bash.log
    $InputFileTag bashTag:
    $InputFileStateFile bash_log
    $InputFileSeverity info
    $InputFileFacility local0
    $InputRunFileMonitor
    
    #bash audit
    local0.info     @@10.192.2.222:514
    
    
  • 日志轉(zhuǎn)發(fā)服務(wù)器配置
    思路:將收集到的日志轉(zhuǎn)發(fā)給MariaDB服務(wù)器保存

    安裝rsyslog寫入mysql數(shù)據(jù)庫接口工具
    [root@node01 ~]# yum -y install rsyslog-mysql
    
    修改rsyslog配置文件
    [root@node01 ~]# vim /etc/rsyslog.conf 
    $ModLoad imtcp                    
    $InputTCPServerRun 514    設(shè)置為rsyslog收集轉(zhuǎn)發(fā)服務(wù)器監(jiān)聽tpc514端口
    $ModLoad ommysql      加載寫入mysql模塊
    
    將特定的日志轉(zhuǎn)發(fā)給mysql服務(wù)器
    local0.info                                              :ommysql:10.192.1.161,Syslog,rsyslog,rsyslog
    [root@node01 ~]# systemctl restart rsyslog
    
  • web服務(wù)器查看bash日志
    在客戶端服務(wù)器輸入兩條bash命令

    [root@ceph_deploy ~]# pwd
    /root
    [root@ceph_deploy ~]# ifconfig
    

    瀏覽器查看


    查看bash命令記錄
  • sudo安全切換

    • 功能簡(jiǎn)介:
      sudo是linux系統(tǒng)管理指令,是允許系統(tǒng)管理員讓普通用戶執(zhí)行一些或者全部的root命令的一個(gè)工具牛曹,如halt佛点,reboot,su等等黎比。這樣不僅減少了root用戶的登錄和管理時(shí)間超营,同樣也提高了安全性。
    • sudo運(yùn)行流程
      1阅虫、當(dāng)用戶運(yùn)行sudo時(shí)演闭,系統(tǒng)于/etc/sudoers文件里查找該用戶是否有運(yùn)行sudo的權(quán)限
      2、若具有運(yùn)行sudo的權(quán)限颓帝,那么用戶輸入自己的password船响,注意這里輸入的是用戶自己的password
      3、假設(shè)password正確躲履,進(jìn)行sudo后面的命令见间,root運(yùn)行sudo是不須要輸入password的,切換到的身份與運(yùn)行者身份同樣的時(shí)候工猜。也不須要輸入password米诉。
    • 修改sudo配置文件
      sudo配置文件有兩個(gè)/etc/sudoers和/etc/sudoers.d/*
      使用visudo命令修改配置文件visudo -f /etc/sudoers.d/file
    • 授權(quán)格式
      who where=(whom) commands
      users hosts=(runas) commands
      users:username,#uid篷帅,%groupname史侣,%#gid,user_ailas
      hosts: ip魏身, hostname惊橱,NetAddr,host_alias箭昵,ALL
      ruanas:runas_alias税朴,ALL
    • 示例
    別名定義了一個(gè)USERADMIN組,包含zhangsan和lisi兩個(gè)用戶
    User_Alias   USERADMIN=zhangsan,lisi
    
    別名定義了一組NETADM命令組,可使用ip和route這兩個(gè)路徑正林,這里必須用絕對(duì)路徑
    Cmnd_Alias   NETADM=/usr/sbin/ip,/usr/sbin/route
    
    別名定義了一組USERADM命令組泡一,用用于用戶添加和刪除
    Cmnd_Alias   USERADM=/usr/sbin/useradd,/sbin/userdel,/usr/bin/passwd,/sbin/reboot
    
    這里wangwu用戶擁有兩個(gè)命令組的權(quán)限,前一組不需要輸入密碼觅廓,后一組執(zhí)行時(shí)需要輸入用戶
    wangwu  ALL=(ALL)   NOPASSWD:NETADM,PASSWD:USERADM
    
    USERADMIN 用戶組擁有USERADM命令組的命令執(zhí)行權(quán)限
    USERADMIN  ALL=(ALL)  USERADM
    
    xp用戶擁有USERADM中命令組中除了reboot的權(quán)限
    xp      ALL=(ALL)       USERADM,!/sbin/reboot
    

2鼻忠、詳解nginx模塊使用方法

  • nginx簡(jiǎn)介
    Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理服務(wù),也是一個(gè)IMAP/POP3/SMTP服務(wù)
    nginx高度模塊化杈绸,但其模塊早期不支持DSO機(jī)制帖蔓,近期版本支持動(dòng)態(tài)裝載和卸載
  • 模塊分類:
    • 核心模塊:core module
    • 標(biāo)準(zhǔn)模塊:
      • HTTP modules:
        • Standard HTTP modules
        • Optional HTTP modules
      • Mail modules
      • Stream modules
    • 第三方模塊
  • 核心模塊
    • 正常運(yùn)行必備的配置:
      • 1、user瞳脓;指明運(yùn)行使用的用戶
      • 2塑娇、pid /PATH/TO/PID_FIEL;指定存儲(chǔ)nginx主進(jìn)程進(jìn)程號(hào)的文件路徑
      • 3篡殷、include file | mask钝吮;指明包含進(jìn)來的其它配置文件片段
      • 4、load_module file板辽;指明要裝載的動(dòng)態(tài)模塊
    • 性能優(yōu)化相關(guān)配置
      • 1奇瘦、worker_processes number |auto;
        worker進(jìn)程的數(shù)量,通常應(yīng)該為當(dāng)前主機(jī)的cpu的物理核心數(shù)
        auto:當(dāng)前主機(jī)物理CPU核心數(shù)
      • 2劲弦、worker_cpu_affinity cpumask ...;
        worker_cpu_affinity auto [cpumask];
        0001:0號(hào)CPU
        0010:1號(hào)CPU
        例如:
        worker_processes number 2
        worker_cpu_affinity 0100,1000耳标;
        這表示機(jī)器有4顆CPU,nginx啟用2個(gè)進(jìn)程邑跪,分別綁定在后兩顆CPU上
      • 3次坡、worker_priority number;
        指定worker進(jìn)程的nice值,設(shè)定work進(jìn)程優(yōu)先級(jí):[-20到20之間]
      • 4画畅、worker_rlimit_nofile number;
        worker進(jìn)程所能夠打開的文件數(shù)量上限
    • 調(diào)試砸琅、定位問題
      • 1、daemon on|off; 是否以守護(hù)進(jìn)程方式運(yùn)行Nginx
      • 2轴踱、master_process on|off;是否以master症脂、worker模型運(yùn)行nginx;默認(rèn)為on
      • 3淫僻、error_log file [level]
    • 事件驅(qū)動(dòng)相關(guān)的配置
      events {
      ...
      }
      • 1诱篷、worker_connections number;
        每個(gè)worker進(jìn)程所能打開的最大并發(fā)連接數(shù)量
        nginx最大并發(fā)=worker_processes*worker_connections
      • 2、use method雳灵;指明并發(fā)連接請(qǐng)求的處理方法棕所;
        例如 use epoll;
      • 3悯辙、accept_mutex on|off
        處理新的連接請(qǐng)求的方法琳省,on意味著有各worker輪流處理新請(qǐng)求迎吵,off意味著每個(gè)新請(qǐng)求都會(huì)通知所有的worker進(jìn)程
    • 配置示例
    user nginx ;                             #進(jìn)程運(yùn)行使用的用戶和組
    pid logs/nginx.pid;                       #指定存儲(chǔ)nginx主進(jìn)程號(hào)的文件路徑
    include vhost/*.conf;                     #指明包含進(jìn)來的其他配置文件
    #include mime.type                        #指明包含進(jìn)來的其他文件類型
    #load module file;                        #指明要裝載的動(dòng)態(tài)模塊
    worker_processes 4 | auto;                #worker進(jìn)程的數(shù)量,應(yīng)小于等于cpu核心數(shù)岛啸,auto為當(dāng)前主                         
                                          #機(jī)cpu核心數(shù)
    worker_cpu_affinity 0001 0010 0100 1000;  #將worker進(jìn)程與通過cpumask與指定cpu綁定
    worker_priority -10;                      #指定worker進(jìn)程的nice值钓觉,范圍[-20,20]
    worker_rlimite_nofile 2000;               #指定worker進(jìn)程能夠打開的最大文件數(shù)
    
    #daemon on;                               #是否已守護(hù)進(jìn)程方式運(yùn)行Nginx
    #master_process on;                       #是否已master-worker模型運(yùn)行Nginx茴肥,默認(rèn)on
    
    error_log /var/log/nginx-error.log info;  #錯(cuò)誤日志
    
    events {                                  #事件驅(qū)動(dòng)相關(guān)配置
        use epoll;                            #指明并發(fā)連接請(qǐng)求的處理方式
        worker_connections 2048;              #每個(gè)worker進(jìn)程能夠打開的最大并發(fā)連接數(shù)
        #accpet mutex on | off;               #處理新連接的方式坚踩,on意味著由每個(gè)worker輪流處理新請(qǐng)    
                                          #求,off意味著每個(gè)新請(qǐng)求到達(dá)都會(huì)通知所有worker進(jìn)程
    }
    
  • 標(biāo)準(zhǔn)模塊-HTTP modules
    • 虛擬主機(jī)server{...}

      • listen字段
        listen PORT|address[:port]|unix:/PATH/TO/SOCKET_FILE
        listen address[:port][default_server][ssl][http2|spdy] [backlog=number] [rcvbuf=size] [sndbuf_size]
        default_server設(shè)定為默認(rèn)虛擬主機(jī)
        ssl限制僅能通過ssl連接提供服務(wù)
        backlog=number后援隊(duì)列長度
        rcvbuf=size接收緩沖區(qū)大小
        sndbuf=size發(fā)送緩沖區(qū)大小
      • server_name字段
        server_name name ... ;
        server_name www.peaoguo.com
        指明虛擬主機(jī)的主機(jī)名稱瓤狐,后可跟多個(gè)由空白字符分隔的字符串
        支持*通配任意長度的任意字符瞬铸,server_name *.peguo.com www.peguo.*
        支持~起始的字符做正則表達(dá)式模式匹配,server_name ~^www\d+\.peguo\.com
        匹配順序:
        1础锐、首先是字符串精確匹配
        2嗓节、左側(cè)*通配符
        3、右側(cè)*通配符
        4皆警、正則表達(dá)式
      • tcp_ondelay on|off拦宣;
        在keepalived模式下的連接是否啟用TCP_NODELAY選項(xiàng)
        tcp_nopush on|off;
        在sendfile模式下,是否啟用TCP_CORK選項(xiàng)信姓;
      • sendfile on|off鸵隧;
        是否啟用sendfile功能
    • 定義路徑相關(guān)配置

      • root path;
        設(shè)置web資源路徑映射,用于指明用戶請(qǐng)求的url所對(duì)應(yīng)的本地文件系統(tǒng)上的文檔所在路徑意推,可用的位置:http豆瘫、server、location菊值,if in location
      • location [=|~|~*|^~] url {...}
        在一個(gè)server中l(wèi)ocation配置段可存在多個(gè)外驱,用于實(shí)際從url到文件系統(tǒng)的路徑映射,
        nginx會(huì)根據(jù)用戶請(qǐng)求的url來檢查定義的所有l(wèi)ocation腻窒,并找出一個(gè)最佳匹配昵宇,而后應(yīng)
        用其配置
        =:對(duì)url做精確匹配
        ~:對(duì)url做正則表達(dá)式模式匹配,區(qū)分字符大小寫
        ~*:對(duì)url做正則表達(dá)式模式匹配儿子,不區(qū)分字符大小寫
        ^~:對(duì)url左半部分做匹配檢查瓦哎,不區(qū)分字符大小寫
        匹配優(yōu)先級(jí):=,^~,~,~/~*,不帶符號(hào)典徊;
        root /vhosts/www/htdocs/
        http://www.peaoguo.com/index.html--->/vhosts/www/htdocs/index.html
      • alias path;
        定義路徑別名杭煎,文檔映射的另一種機(jī)制,僅能用于location
        注意:location中使用root指令和alias指令的意義不同卒落,
        root羡铲,給定的路徑對(duì)應(yīng)于location中/url/左側(cè)的/
        alias,給定的路徑對(duì)應(yīng)于location中的/url/右側(cè)的/
      • index file ...;
        默認(rèn)資源儡毕,http也切,server扑媚,location
      • error_page code ... [=[response]] url;
      • try_file file ...url;
    • 定義客戶端請(qǐng)求的相關(guān)配置

      • keepalive_timeout timeout [header_timeout];
        設(shè)定保持連接的超時(shí)時(shí)長,0表示禁止長連接雷恃,默認(rèn)為75S
      • keepalive_requests number;
        在一次長連接上所允許請(qǐng)求的資源的最大數(shù)量疆股,默認(rèn)為100
      • keepalive_disable none | browser ......;
        對(duì)哪種瀏覽器禁用長連接
      • send_timeout time;
        向客戶端發(fā)送響應(yīng)報(bào)文的超時(shí)時(shí)長,此處倒槐,是指兩次寫操作之間的間隔時(shí)長
      • client_body_buffer_size size;
        用于接收客戶端請(qǐng)求報(bào)文的body部分的緩沖區(qū)大小旬痹,默認(rèn)為16K,超出此大小時(shí)讨越,其將被暫存到磁盤上的由client_body_path指定所定義的位置两残;
      • client_body_temp_path path [level1 [level2 [level3]]];
        設(shè)定用于存儲(chǔ)客戶端請(qǐng)求報(bào)文的body部分的臨時(shí)存儲(chǔ)路徑及子目錄結(jié)構(gòu)和數(shù)據(jù)
        16進(jìn)制的數(shù)字
        client_body_path /var/tmp/client_body 1 2 2
        1、表示用一位16進(jìn)制數(shù)字表示一級(jí)子目錄把跨;0-f 16個(gè)
        2人弓、表示用兩位16進(jìn)制數(shù)字表示二級(jí)子目錄;00-ff 256個(gè)
        2着逐、表示用兩位16進(jìn)制數(shù)字表示三級(jí)子目錄崔赌;00-ff 256個(gè)
    • 對(duì)客戶端進(jìn)行限制的相關(guān)配置

      • limit_rate rate;
        限制響應(yīng)給客戶端的傳輸速率,單位是bytes/second,0表示無限制
      • limit_excetp method ...{...}
        限制對(duì)指定請(qǐng)求方法之外的其它方法的使用客戶端
        limit_rate GET{
        allow 10.192.0.0/16 ;
        deny all;
        }
    • 文件操作優(yōu)化的配置

      • aio on|off |threads[=pool];
        是否啟用aio功能
      • directio size|off;
        在LInux主機(jī)啟用O_DIRECT標(biāo)記耸别,此處意味文件大小等于給定的大小時(shí)使用健芭,例如directio 4m;
      • open_file_cache off;
        open_file_cache max=N [inactive=time];
        nginx可以緩存以下三種信息:
        1太雨、文件的描述符吟榴、文件大小和最近一次的修改時(shí)間
        2、打開的目錄結(jié)構(gòu)
        3囊扳、沒有找到的或者沒有權(quán)限訪問的文件的相關(guān)信息
        max=N 可緩存的緩存項(xiàng)上限吩翻,達(dá)到上限后會(huì)使用LRU算法實(shí)現(xiàn)緩存管理
        lnactive=time;緩存項(xiàng)的非活動(dòng)時(shí)間锥咸,在此處指定的時(shí)長內(nèi)未被命中的或命中次數(shù)少于open_file_chache_min_uses指令所指定的非活動(dòng)項(xiàng)
      • open_file_cache_valid time;
        緩存項(xiàng)有效性的檢查頻率狭瞎,默認(rèn)為60S
      • open_file_cache_min_uses number;
        在open_file_cache 指令的inactive參數(shù)指定的時(shí)長內(nèi),至少應(yīng)該被命中多少次方可被歸類為活動(dòng)項(xiàng)
      • open_file_cache_errors on |off
        是否緩存查找時(shí)發(fā)送錯(cuò)誤的文件一類信息搏予;
    • ngx_http_access_module模塊:
      實(shí)現(xiàn)基于IP的訪問控制功能

      • allow address |CIDR|unix; all;
      • deny address |CIDR|unxi; all;
        使用范文http,server,location,limit_except
    • ngx_http_auth_basic_module模塊
      實(shí)現(xiàn)基于用戶的的訪問控制熊锭,使用basic機(jī)制進(jìn)行用戶認(rèn)證

      • auth_basic_string | off;
      • auth_basic_user_file file;
        location /admin/ {
        alias /web/app/;
        auth_basic "ADMIN AREA";
        auth_basic_user_file /etc/nginx/.ngxpasswd;
        }
        注意:htpasswd命令由httpd-tools所提供
    • ngx_http_stub_status_module模塊
      用于輸出nginx的基本狀態(tài)信息

      • stub_status;
        配置示例:
        location /nginx_admin_status {
        stub_status;
        }
        各狀態(tài)參數(shù)含義:
        Active Connections:活動(dòng)狀態(tài)的連接數(shù)
        accepts:已經(jīng)接受的客戶端請(qǐng)求的總數(shù)
        handled:已經(jīng)處理完成的客戶端請(qǐng)求的總數(shù)
        requests:客戶端發(fā)來的總的請(qǐng)求數(shù)
        Reading:處于讀取客戶端請(qǐng)求報(bào)文首部的連接的連接數(shù)
        Writing:處于向客戶端發(fā)送響應(yīng)報(bào)文過程中的連接數(shù)
        Waiting:處于等待客戶端發(fā)出請(qǐng)求的空間連接數(shù)
    • ngx_http_log_module模塊

      • log_format name string ...;
        string可以使用nginx核心模塊及其它模塊內(nèi)嵌的變量
      • access_log path [format [buffer=size [gzip[=level]] [flush=time [if=condition]];
        access_log off;
        訪問日志文件路徑,格式及相關(guān)的緩沖配置
        buffer=size
        flush=time
        • open_log_file_cache max=N [inacitve=time] [min_uses=N] [valid=time]
          open_log_file_cache off
          緩存各日志文件相關(guān)的元數(shù)據(jù)信息
          max:緩存的最大文件描述符數(shù)量
          min_uses:在inactive指定的時(shí)長內(nèi)訪問大于等于此值方可被當(dāng)做活動(dòng)項(xiàng);
          inactive:非活動(dòng)時(shí)長
          valid:驗(yàn)證緩存中各緩存項(xiàng)是否為活動(dòng)項(xiàng)的時(shí)間間隔
    • ngx_http_gzip_module

      • gzip on|off;
      • gzip_comp_level level; level級(jí)別1-9
      • gzip_disable regex ...;
      • gzip_min_length length;
        啟用壓縮功能的響應(yīng)報(bào)文大小閥值
      • gzip_buffers number size;
        支持實(shí)現(xiàn)壓縮功能時(shí)為其配置的緩沖區(qū)數(shù)量及每個(gè)緩存區(qū)大小
      • gzip_proxled off |expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any ...;
        nginx做為代理服務(wù)器接收從被代理服務(wù)器發(fā)送的響應(yīng)報(bào)文,在何種情況下壓縮檬某。
        off:對(duì)代理的請(qǐng)求不啟用
        no-cache吃既,no-store柏副,private:表示從被代理服務(wù)器收到的響應(yīng)報(bào)文首部的Cache-Control的值為此三者中任何一個(gè),則啟用壓縮功能;
      • gzip_types mime-type ...;
        壓縮過濾器,僅對(duì)此處設(shè)定的MIME類型的內(nèi)容啟用壓縮功能
        示例:
        gzip on仿粹;
        gzip_comp_level 6;
        gzip_type text/css text/xml text/html application/javascript;
    • ngx_http_ssl_moudle

      • ssl on|off搁吓;
      • ssl_certificate file;
        當(dāng)前虛擬主機(jī)使用PEM格式的證書文件;
      • ssl_certificate_key file;
        當(dāng)前虛擬主機(jī)上與其證書匹配的私鑰文件吭历;
      • ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];
        支持的ssl協(xié)議版本堕仔,默認(rèn)為后三個(gè);
      • ssl_session_cache off |none |[builtin[:size]] [shared:name:size];
        builtin[:size]:使用OpenSSL內(nèi)建的緩存晌区,此緩存為每個(gè)worker進(jìn)程私有
      • ssl_session_timeout time;
        客戶端一側(cè)的連接可以復(fù)用ssl session cache中緩存的ssl參數(shù)的有效時(shí)長
        配置示例:
        server {
        listen 443 ssl摩骨;
        server_name www.peaoguo.com;
        root /data/www/ssl;
        ssl on;
        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;
        ssl_session_cache shared:sslcache:20m;
        }
    • nginx_http_rewite_modules
      將用戶請(qǐng)求的URI基于regex所描述的模式進(jìn)行檢查,而后完成替換

      • rewrite regex replacement [flag]
        將用戶請(qǐng)求的URI基于regex所描述的模式進(jìn)行檢查契讲,匹配到時(shí)將其替換為replacement指定的新的URI
        注意:如果在同一級(jí)配置塊中存在多個(gè)rewirte規(guī)則仿吞,那么會(huì)自上而下組個(gè)檢查滑频,被某條件規(guī)則替換完成后捡偏,會(huì)重啟新一輪的替換檢查,因此峡迷,隱含有循環(huán)機(jī)制银伟;[flag]所表示的標(biāo)志位用于控制此循環(huán)機(jī)制;
        [flag]
        last:重寫完成后停止對(duì)當(dāng)前URI在當(dāng)前的location中后續(xù)的其它重新操作绘搞,而后對(duì)新的URI啟動(dòng)新一輪重新檢查彤避,提前重 啟新一輪循環(huán)。
        break: 重寫完成后停止對(duì)當(dāng)前URI在當(dāng)前的location中后續(xù)的其它重新操作夯辖,而后直接跳轉(zhuǎn)至重寫規(guī)則配置塊之后的其它配置琉预,結(jié)束循環(huán)。
        redirect:重寫完成后以臨時(shí)重定向方式直接返回重寫后生成的新URI給客戶端蒿褂,由客戶端重新發(fā)起請(qǐng)求圆米,不能以http:// 或https://開頭。
        permanent:重新完成后以永久重定向方式直接返回重寫后生成的新URI給客戶端啄栓,由客戶端重新發(fā)起請(qǐng)求娄帖。
      • return
        return code [text];
        return code URL;
        return URL;
      • rewrite_log on|off;
        是否開啟重寫日志
      • if (condition) {...}
        引入一個(gè)新的配置上下文,條件滿足時(shí)昙楚,執(zhí)行配置塊中的配置指令近速;server,location堪旧,condition
        • 比較操作符:
          ==
          !=
          ~:模式匹配區(qū)分字符大小寫削葱;
          ~*:模式匹配,不區(qū)分大小寫
          !~:模式不匹配淳梦,區(qū)分大小寫
          !~*:模式不匹配析砸,不區(qū)分大小寫
        • 文件及目錄存在性判斷:
          -e,!-e
          -f,!-f
          -d,!-d
          -x,!-x
      • set $variable value;
        用戶自定義變量;
    • ngx_http_referer_module

      • valid_referers none |blocked|server_names|string...;
        定義referer首部的合法可用值谭跨;
        none:請(qǐng)求報(bào)文首部沒有referer首部
        blocked:請(qǐng)求報(bào)文的referer首部沒有值
        server_names:參數(shù)干厚,其可以有值作為主機(jī)名或主機(jī)名模式
        arbitrary_string:直接字符串李滴,但可使用*做通配符
        regular expression:被指定的正則表達(dá)式模式匹配到的字符串,要使用~開頭蛮瞄,例如~.*\.peaoguo\.com;
        配置示例:
        valid_referers none blocked server_names *.peaguo.com peaguo.* *.peaoguo.* *~\.peaoguo\.;
        if($invalid_referer) {
        return http://www.peaguo.com/invalid.jpg;
        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末所坯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子挂捅,更是在濱河造成了極大的恐慌芹助,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闲先,死亡現(xiàn)場(chǎng)離奇詭異状土,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)伺糠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門蒙谓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人训桶,你說我怎么就攤上這事累驮。” “怎么了舵揭?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵谤专,是天一觀的道長。 經(jīng)常有香客問我午绳,道長置侍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任拦焚,我火速辦了婚禮蜡坊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耕漱。我一直安慰自己算色,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布螟够。 她就那樣靜靜地躺著灾梦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪妓笙。 梳的紋絲不亂的頭發(fā)上若河,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音寞宫,去河邊找鬼萧福。 笑死,一個(gè)胖子當(dāng)著我的面吹牛辈赋,可吹牛的內(nèi)容都是我干的鲫忍。 我是一名探鬼主播膏燕,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼悟民!你這毒婦竟也來了坝辫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤射亏,失蹤者是張志新(化名)和其女友劉穎近忙,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體智润,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡及舍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窟绷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锯玛。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖钾麸,靈堂內(nèi)的尸體忽然破棺而出更振,到底是詐尸還是另有隱情,我是刑警寧澤饭尝,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站献宫,受9級(jí)特大地震影響钥平,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜姊途,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一涉瘾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捷兰,春花似錦立叛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至顶考,卻和暖如春赁还,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背驹沿。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來泰國打工艘策, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渊季。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓朋蔫,卻偏偏與公主長得像罚渐,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子驯妄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • I/O模型: 阻塞型搅轿、非阻塞型、復(fù)用型富玷、信號(hào)驅(qū)動(dòng)型璧坟、異步 同步/異步:關(guān)注消息通知機(jī)制 消息通知:同步:等待對(duì)方返...
    Net夜風(fēng)閱讀 2,014評(píng)論 0 1
  • 1.簡(jiǎn)介: ? Nginx:engine X ,2002年赎懦,開源雀鹃,商業(yè)版? http協(xié)議:web服務(wù)器(類似于ht...
    尛尛大尹閱讀 1,871評(píng)論 0 3
  • Nginx簡(jiǎn)介 解決基于進(jìn)程模型產(chǎn)生的C10K問題,請(qǐng)求時(shí)即使無狀態(tài)連接如web服務(wù)都無法達(dá)到并發(fā)響應(yīng)量級(jí)一萬的現(xiàn)...
    魏鎮(zhèn)坪閱讀 2,007評(píng)論 0 9
  • 參考文檔 https://www.linuxidc.com/Linux/2017-09/146760.htmhtt...
    三杯水Plus閱讀 4,305評(píng)論 0 8
  • I/O模型Nginx介紹Nginx的安裝和目錄結(jié)構(gòu)Nginx的配置Nginx的編譯安裝 一、I/O模型 (一)I/...
    哈嘍別樣閱讀 895評(píng)論 0 4