1.location的定義
(1)當location中午定義時,默認使用server中的相關定義。
(2)當locating中有了相關定義,此時則啟用location中的定義的內容。
nginx -t檢查配置文件是否有語法錯誤
nginx -s reload重載nginx
(3)即使server中的root中的目錄下有了/admin的目錄,但是同時又在location中有了相關的定義,那么路徑會去尋找location下的/admin,本次中location下是沒有定義/admin的。
此時是可以使用別名定義的,alias
如下為在location中的/admin,所對應的文件路徑下進行了admin目錄的創建后得到的結果。
2.在一個server中location配置段可存在多個,用戶實現從uri到文件系統的路徑映射;nginx會根據用戶請求的uri來檢查定義的所有location,并找出一個最佳匹配,而后應用其配置;
=:對URI做精確匹配;例如,http://www.magedu.com/,
location = / {
….
}
~:對URI做正則表達式模式匹配,區分字符大小寫。
~*:對URI做正則表達式模式匹配,不區分字符大小寫;
^~:對URI的左半部分做匹配檢查,不區分字符大小寫;
不帶符號:匹配起始于此uri的所有的uri。
匹配優先級:=,^~,~/~*,不帶符號;
2.alias path;
定義路徑別名,文檔映射的另一種機制;僅能用于location上下文;
注意:location中使用root指令和alias指令的意義不同;
(a)root,給定的路徑對應于location中的/uri/左側的/;
(b)alias,給定的路徑對應于location中的/uri/右側的/;
3.index.file ….;
默認資源:http,server,location
4.error_page code…[=[response]]uri;
Defines
錯誤頁文件配置
5.try_files file … uri;
定義客戶端請求的相關配置;
6.keepalive timeout timeout [header_timeout];
設定保持連接的超時時長,0表示禁止長連接;默認為75s;
7.keepalive_requests number;
在一次長連接上所允許請求的資源的最大數量,默認為100;
8.keepalive_disable none | browser …;
表示對哪種瀏覽器禁用keepalive;
9.send_timeout time;
向客戶端發送響應報文的超時時長,此處,是指兩次寫操作之間的間隔時長;
10.client_body_temp_path path [level1 [level2[level3]]]
設定用于存儲客戶端請求報文的body部分的臨時存儲路徑及子目錄結構和數量;
16進制的數字;
client_body_temp_path path /var/tmp/client_body 1 2 2
16個一級子目錄,256個二級子目錄,256個三級子目錄
對客戶端進行限制的相關的配置
11、limit_rate rate;
限制響應給客戶端的傳輸速率,單位是bytes/second,0表示無限制
12、limit_except method….{…..}
限制對指定的請求方法之外的其它方法的使用客戶端;
limit_except GET {
allow 192.168.1.0/32;
deny all;
}
文件操作優化的相關相關配置
AIO指的的異步IO機制
13、aio on |off |threads[=pool];
是否啟用aio功能
14、directio size | off
在Linux主機啟用O_DIRECT標記,此處意味著文件大于等于給定的大小時使用,例如directio 4m;
15、open_file_cacahe off;
open_file_cacahe max=N[inactive=time];
nginx可以緩存以下三種信息:
(1)文件的描述符、文件的大小和最近一次的修改時間;
(2)打開的目錄結構;
(3)沒有找到的或者沒有權限訪問的文件的相關信息;
max=N:可以緩存的緩存項的上限;達到上限后會使用LRU算法實現緩存管理;
inactive=time:緩存項的非活動時長,在此處指定的時長內未被命中的或命中的次數少于open_file_cache_min_user指令所指定的次數的緩存項即為非活動項;
23、open_file_cache_vaild time;
緩存項有效性的檢查頻率;默認為60s;
24、open_file_cache_min_uses number;
在open_file_cache指令的inactive參數指定的時長內,至少應該被命中多少次方可被歸類為活動項;
25、open_file_cache_errors on |off;
是否緩存查找時發生錯誤的文件一類的信息;
nginx——http_access_module模塊;
實現基于i的訪問控制功能
26、allow address|CIDR | unix: | all;
27、deny address | CIDR |unix: | all;
http,server,location,limit_except
ngx_http_auth_basic_module模塊
實現基于用戶的訪問控制,使用basic機制進行用戶認證;
28、auth_basic string | off;
29、auth_basic_user_file file;
實例:
對于/admin做用戶訪問認證
(a)
(b)設置用戶名和密碼
htpasswd -c -m /etc/nginx/.ngpasswd tom
htpasswd -m /etc/nginx/.ngpasswd jerry
注意:htpasswd命令由httpd-tools所提供
ngx_http_stub_status_module模塊
用于輸出nginx的基本狀態信息
Active connections:291
server accepts handled requests
16630948 16630948 31070465
Reading:6 Writing:179 Wating:106
Active connections:活動狀態的連接數;
accepts:已經接受的客戶端請求總數
handled:已經處理完成的客戶端請求的總數
requests:客戶端發來的總的請求數;
Reading:處于讀取客戶端請求報文首部的連接的連接數;
Writing:處于向客戶端發送響應報文過程中的連接數;
Wating:處于等待客戶端發出請求的空閑連接數;
30、stub——status;注意需要由stub模塊
配置樣例:
location /basic_status {
stub_status;
}
access_log不能放進stub_status的location中,放在server中有效。
ngx_http_log_module模塊
The ngx_http_log_module
31、log_format name string…;
string可以使用nginx核心模塊及其它模塊的內嵌的變量;
課外作業:為nginx定義使用類似于http的commbined的格式。
32、access_log path[fomat [buffer=size ][gzip [level]][flush=time]][if=condition];
access_log off;
訪問日志文件路徑、格式及相關的緩沖的配置;
buffer=size
flush=time
33、open_log_file_cache max=N[inactive=time][min_uses=N][valid=time];
open_log_file_cache off;
緩存各日志文件相關的元數據信息;
max:緩存的最大文件描述符數量
min_users:在inactive指定的時長內訪問大于等于此值方可被當做活動項
inactive:非活動時長
vaild:驗證緩存中各緩存項是否為活動項的時間間隔;
URL重寫
/bbs/輸出論壇,—->/forum/
ngx_http_rewrite_module模塊:
將用戶請求的URI基于regex所描述的模式進行檢查,而后完成替換;
1、rewrite regex replacement [flag]
將用戶請求的URI基于regex所描述的模式進行檢查,匹配到時將其替換為replacement指定的新的URI;
注意:如果在同一級配置塊中存在多個rewrite規則,那么會自下而下逐個檢查。被某條件規則替換完成后,會重新一輪的替換檢查,因此,隱含有循環機制;
如果replacement是以http://或https://開頭,
url/——->newurl/——>new_new_url
rewrite
rewrite
rewrite
1、[flag]
last:重寫完成后停止對當前URI在當前location中的后續其它重寫操作,而后對新的URI啟動新一輪重寫檢查。
break:替換完以后,跳出循環,防止實現死循環。重寫完成后停止對當前URI在當前location中后續的其它重寫操作,而后直接跳轉至重寫規則配置塊之后的其它配置;結束循環;
redirect:重寫完成后以臨時重定向方式直接返回重寫后生成的新URI給客戶端,由客戶端重新發起請求;不能以http://或https://開頭;例如可以接https://www.baidu.com,是由客戶端重新發起的。
permanent:重寫完成后以永久重定向方式直接返回重寫后生成的新URI給客戶端,由客戶端重新發起請求;不能以http://或https://開頭;例如可以接https://www.baidu.com,是由客戶端重新發起的。
2、return
return code [text];
return code URL;
return URL;
3、rewrite_log on |off;
是否開啟重寫日志;
4、if (condition){….}
引入一個新的配置上下文,條件滿足時,執行配置塊中的配置指令;server,location;
condition:
比較操作符:
==
!=
~:模塊匹配,區分字符大小寫;
~*:模塊匹配,不區分字符大小寫;
!~:模塊不匹配,區分字符大小寫;
!~*:模塊不匹配,不區分字符大小寫;
文件及目錄存在性判斷:
-e,!-e
-f,!-f
-d,!-d
-x,!-x
5、set $variable value
用戶自定義變量;
ngx_http_gzip——module:
1、gzip on | off
2、gzip_comp_level level;
3、gzip_disable regex …;
4、gzip_min_length length;
啟用壓縮功能的響應報文大小或閥值。
5、gzip_buffers number size;
支持實現壓縮功能時為其配置的緩沖區數量以及每個緩沖區的大小。
6、gzip——proxied off |expired
nginx 作為代理服務器接收到從被代理服務器發送的響應報文后,在何種條件下啟用壓縮功能的;
off:對代理的請求不啟用
no-cache,no-store,private:表示從被代理服務器收到的響應報文首部的chche-contrller
7、gzip_types mime-type …;
壓縮過濾器,僅對此處設定的MIME類型的內容啟用壓縮功能;
gzip_disable Chrome;對Chreome禁用壓縮功能。
原創文章,作者:178babyhanggege,如若轉載,請注明出處:http://www.www58058.com/54839