nginx的模塊應用

1.location的定義

(1)當location中午定義時,默認使用server中的相關定義。

nginx的模塊應用1.jpg

(2)當locating中有了相關定義,此時則啟用location中的定義的內容。

nginx -t檢查配置文件是否有語法錯誤

nginx -s reload重載nginx

nginx的模塊應用2.jpg

(3)即使server中的root中的目錄下有了/admin的目錄,但是同時又在location中有了相關的定義,那么路徑會去尋找location下的/admin,本次中location下是沒有定義/admin的。

nginx的模塊應用3.jpg

此時是可以使用別名定義的,alias

nginx的模塊應用4.jpg

如下為在location中的/admin,所對應的文件路徑下進行了admin目錄的創建后得到的結果。

nginx的模塊應用5.jpg

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

錯誤頁文件配置

6.jpgnginx的模塊應用

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

nginx的模塊應用7.jpg

ngx_http_auth_basic_module模塊

實現基于用戶的訪問控制,使用basic機制進行用戶認證;

28、auth_basic string | off;

29、auth_basic_user_file file;

實例:

對于/admin做用戶訪問認證

(a)

nginx的模塊應用8.jpg

(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

nginx的模塊應用9.jpg

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

(0)
178babyhanggege178babyhanggege
上一篇 2016-10-30
下一篇 2016-10-30

相關推薦

  • linux防火墻介紹

    一、前言firewall(防火墻):工作在網絡進入或者流包,進出的網絡數據包進行一定的規則進行檢查過濾系統。包括iptables和netfilter組件。iptables 是與 Linux 內核集成的 IP 信息包過濾系統。如果 Linux 系統連接到因特網或 LAN、服務器或連接 LAN 和因特網的代理服務器, 則該系統系統中更好地控制 IP 信息包過濾和…

    2017-04-30
  • AWK文本工具和軟件包管理

    AWK文本工具 兩種版本1.nawk ??2.gawk gawk ?? 模式掃描和處理語言 選項: -F 指明輸入時用到的字段分隔符 -v ?var=value:自定義變量 基本格式: awk [options] ’program’???file…. program:pattern{action statrments;………

    Linux干貨 2018-03-15
  • N23-第一周 記流水賬

      機器已經設置好了  屏幕左邊是linux控制臺,屏幕中間放置記事本來記筆記,屏幕右邊是教學視頻,如圖 費我老大勁 筆記本的無線網卡驅動不好弄啊   注重操作實踐,全程跟著操作,一定要照著做,動手啊動手…………..前十五天內容以查漏補缺為主,所以筆記是興之所至,遵循以下原則:&n…

    Linux干貨 2016-09-18
  • nginx+keepalived構建負載均衡代理服務器

    實驗環境: 1、centos7.3 centos6.82、兩臺VS提供nginx代理和keepalived3、兩臺RS提供httpd服務并部署wordpress4、另外一臺提供Mysql數據庫服務 實驗拓撲圖: 拓撲圖 實驗步驟 1、在vs1(172.18.251.4)上配置,用yum安裝keepalived和nginx yum install -y kee…

    Linux干貨 2017-05-21
  • Linux文件與目錄管理之權限與命令之間的關系

    Linux文件與目錄管理之權限與命令之間的關系 我們知道權限對于用戶賬戶來說是非常重要的,因為它可以限制用戶能不能讀取/新建/刪除/修改文件或目錄。在這我們就來說明下什么命令在什么樣的權限下才能夠運行。         讓用戶能進入某目錄成為“可工作目錄”的基本權限是什么     &nbs…

    Linux干貨 2017-04-24
  • 通配符、正則表達式小計

    基本通配符:    *: 匹配任意長度的任意字符;    ?: 匹配任意的單個字符;    []: 匹配指定范圍內的任意單個字符;    [^]: 匹配非指定范圍內的任意單個字符;   簡單示例:   &nbs…

    Linux干貨 2017-03-16
欧美性久久久久