Nginx 知識總結

1.Nginx特點

高併發,低消耗,熱部署,高可用,高擴展

2.Nginx常用命令

nginx -h 查看命令選項
nginx -v 查看版本信息
nginx -tq 驗證配置文件是否有錯誤 默認是驗證conf/nginx.conf文件
nginx -s stop : 強制停止nginx
nginx -s quit : 優雅停止nginx
nginx -s reload 不重啓nginx的前提下重新加載nginx配置文件

Nginx的併發處理機制

Nginx採用了三種併發機制:多進程,多線程,異步
Nginx的進程分爲兩類:master進程和worker進程,可以有多個worker進程,所以是多進程的,每個worker進程會有多個線程處理用戶請求,worker進程採用的是epoll多路複用器機制來對後端服務器進行處理,後端服務器返回結果後會回調epoll多路複用器(異步)。

Nginx重要配置(nginx.conf)

全局配置
worker_processes :指定工作進程數,默認爲1,其值一般設置爲cpu核數,或者核數的倍數,不確定是可設置爲auto
worker_cpu_affinity : 將worker進程與具體的內核綁定,該設置通過二進制進行,0表示關閉,1表示開啓,有幾個內核就使用幾個二進制位。(比如四核,依次可以爲0001,0010,0100,1000).
worker_rlimit_nofile:設置一個worker進程所能打開的最大文件數。也就是文件句柄數,默認是當前linux系統的最大值,查看修改句柄

events模塊:
wroker_connections : 設置每個 worker 進程可以併發處理的最大連接數。該值不能超過 worker_rlimit_nofile的值。
accept_mutex :生成一把鎖,當新連接來時,只會有一個空閒worker被喚醒來處理連接。默認爲on ,如果爲off則所有空閒worker都會被喚醒,然後爭搶這個連接,只會有一個會處理(“驚羣”現象)
accept_mutex_delay:設置隊首空閒worker嘗試獲取互斥鎖的時間間隔,默認500毫秒。
multi_accept:默認爲on, 多個請求一起分配,如果爲off會逐個拿出新連接,按照負載均衡策略,將其分配給當前處理連接個數最少的worker。

http模塊
include mime.types:將當前目錄(conf 目錄)中的 mime.types 文件包含進來。
default_type application/octet-stream:對於無擴展名的文件,默認其爲 application/octet-stream 類型
sendfile on:開啓linux系統的零拷貝機制,前提是要系統支持(linux6及以上版本支持)。
零拷貝:簡單來說就是避免浪費cpu,頻繁的用戶態到內核態的切換,採用DMA(Direct Memory Access),直接內存訪問,將數據直接從內核態發送到socker 緩衝區。
tcp_nopush on:以單獨的數據包形式發送 Nginx 的響應頭信息,而真正的響應體數據會再以數據包的形式發送,這個數據包中就不再包含響應頭信息了。(適用於響應體大的場景)
keepalive_timeout 60:設置客戶端與Nginx間所建立的長連接的生命超時時間,時間到達,則連接將自動關閉。單位秒
client_body_timeout 10:設置客戶端獲取 Nginx 響應的超時時限,即一個請求從客戶端發出到接收到 Nginx 的響應的最長時間間隔。若超時,則認爲本次請求失敗。

location配置:

location /fay {
       root /usr/local; 
       index test.txt;
   }

請求地址爲:http://127.0.0.1:80/fay,路徑就會匹配上 /fay
root:指定根目錄
index: 指定文件名
最終會去找:/usr/local/fay/test.txt文件

Nginx路徑匹配規則

優先級由低到高依次是:
普通匹配 < 長路徑匹配 < 正則匹配 < 短路匹配 < 精確匹配
普通匹配: location /aaa只要以請求/aaa開頭的路徑就可命中
長路徑匹配: /aaa/bbb,如果請求路徑是/aaa/bbb則優先級高於普通匹配
正則匹配:~/aaa~表示這裏是正則表達式,默認匹配是區分大小寫的。優先級高於長路徑匹配,~後面跟*表示不區分大小寫
短路匹配:^~/aaa/bbb,以^~開頭的匹配路徑稱爲短路匹配,表示只要匹配上,就不再匹配其它的了,即使是正則匹配也不再匹配了。即其優先級要高於正則匹配的。
精準匹配:location =/aaa/bbb,以=開頭,優先級最高

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章