可以說nginx
的使用基本體現在了配置檔案的指令上,而每個模組中的指令又對應了很多的不同的功能,所以本文旨在了解了之前的nginx的初始nginx的基本思想和功能的前提下,進一步的了解一些比較常用的模組和其中的指令;
主模組事件模組
http相關模組
mail、stream相關模組
主要參考nginx的官方文件,nginx的指令集合字母排序,nginx的變數字母排序
主模組的指令主要包括以下這些,基本都是簡單指令,不過每個指令的執行環境context是不一樣的,有的可以在http、location、server等中都可以使用,主模組指令以下是主模組中的指令列表:
1.2 daemon
1.3 debug_points
1.4 error_log
1.5 include
1.6 master_process
1.7 pid
1.8 ssl_engine
1.9 timer_resolution
1.10 user
1.11 worker_cpu_affinity
1.12 worker_priority
1.13 worker_processes
1.14 worker_rlimit_core
1.15 worker_rlimit_nofile
1.16 worker_rlimit_sigpending
1.17 working_directory
這其中使用比較多的就是include
指令。
事件模組主要是設定nginx處理連線請求;事件模組指令指令列表如下:
2.1 accept_mutex
2.2 accept_mutex_delay
2.3 debug_connection
2.4 devpoll_changes
2.5 devpoll_events
2.6 kqueue_changes
2.7 kqueue_events
2.8 epoll_events
2.9 multi_accept
2.10 rtsig_signo
2.11 rtsig_overflow_events
2.12 rtsig_overflow_test
2.13 rtsig_overflow_threshold
2.14 use
2.15 worker_connections
其他的之類需要參考官方文件來看: 主模組和事件模組的簡單指令詳細介紹:
http相關模組可以看作是nginx的核心模組,是其功能的最核心部分,所以http相關的模組有將近幾十個,其中使用的最多的是http核心模組;
http模組的主要組成部分是server和一些公用提取出來指令【可以在http、server、server甚至是if內使用的指令,在server塊級指令集中設定的話需要書寫多次,所以可以作為公共提取到http塊指令中】,而server的重要部分是location、listen、server_name等;
大部分配置也可以寫在server、http塊級中,但是為了避免重複書寫,可以考慮提取到外層;部分指令如下:
乙個完整的對映表在conf/mime.types檔案中,所以預設的寫法是
location /download/
}
keepalive_timeout 客戶端keeplive的鏈結無任何操作的保持最久時間
the first parameter sets a timeout during which a keep-alive client connection will stay open on the server side. the zero value disables keep-alive client connections. the optional second parameter sets a value in the 「keep-alive: timeout=time」 response header field. two parameters may differ.sendfile 指令是指是否開啟linux2+的乙個sendfile的功能,enables or disables the use of sendfile()
error_page 為一些特定的錯誤返回定義好的一些uri路徑, 詳細介紹error_page
syntax: error_page code ... [=[response]] uri;以下example:default: —
context: http, server, location, if in location
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
error_page 404 =200 /empty.gif;
error_page 404 = /404.php;
location /
location @fallback
error_page 403
error_page 404 =301
server配置
空字元完全匹配,空字元匹配既可以完全匹配也可以匹配uri的前半部分【prefix string】;區別是:只有完全匹配的時候,匹配優先順序才會高於正則匹配,而prefix string的
例子如下:
// 需要完全匹配優先順序才高,只有 127.0.0.1:port//test/test.jpg 可以算完全匹配 ;
//連127.0.0.1:port/test.jgp.test 也可以匹配上,只是不算完全匹配
^~ 正則字首匹配,表示匹配以正則匹配的內容開頭的uri,
例子如下:
location ^~ /test
// 匹配 127.0.0.1:port/test + 其他字尾路徑等;
~|~*
例子如下:
location ~ ^/users/(.+\.(?:gif|jpe?g|png))$
// 需要與正規表示式匹配,127.0.0.1:port/users/test.jpg 可以正確匹配 ;還可以在後續來使用這個匹配上的可捕獲的子表示式
空字元非精確
例子如下:
location = /test
// 可以完全和部分匹配,只有 127.0.0.1:port/test 才算是全匹配 ;127.0.0.1:port/test/也可以匹配上,就是非完全匹配,優先順序最低
還有很多其他的,此處不一一例舉。
location
還有很多其他的,此處不一一例舉。
Nginx 作為web server 的優化要點
常用優化要點 優化配置的效果需要實踐檢驗,建議部署乙個監控工具,監控的內容應包括 nginx 開源版提供的監控指標,僅有如下6個 connections,accepts,handled,requests,writing,waiting 從作業系統的角度 應包括nginx程序的cpu使用率,記憶體占用...
Nginx 作為web server 的優化要點
2019獨角獸企業重金招聘python工程師標準 nginx使用的是固定數量的workers,每個worker都處理進入的請求。最佳實踐是每個cpu核心配置乙個worker.如何知道您的系統有幾個cpu?grep processor proc cpuinfo wc l對於乙個四核處理器,配置檔案類似...
Nginx 作為web server 的優化要點
nginx既可作為web server,也可作為反向proxy,這裡先討論作為web server的一般性優化要點。常用優化要點 nginx使用的是固定數量的workers,每個worker都處理進入的請求。最佳實踐是每個cpu核心配置乙個worker.如何知道您的系統有幾個cpu?對於乙個四核處理...