nginx的web server的基本使用(二)

2021-09-14 01:04:01 字數 3851 閱讀 8358

可以說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;

default: —

context: http, server, location, if in location

以下example:

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?對於乙個四核處理...