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ì)方案如下:
-
環(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
- 功能簡(jiǎn)介:
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
- HTTP 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ù)量上限
- 1奇瘦、worker_processes number |auto;
- 調(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)程
- 1诱篷、worker_connections number;
- 配置示例
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)程 }
- 正常運(yù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功能
- listen字段
-
定義路徑相關(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;
}
-
-