Nginx 常用模組指令

2022-06-06 20:09:12 字數 4240 閱讀 6422

1. http核心模組(http core)

a. client_body_buffer_size:指定連線請求實體的緩衝區大小,如果超了,那麼這些請求實體的整體或部分將嘗試寫入乙個臨時檔案,預設值是8k/16k;

b. client_body_temp_path:指定連線請求實體試圖寫入的臨時檔案路徑,預設值是client_body_temp;

c. client_max_body_size:指定允許客戶端連線的最大請求實體大小,如果超了,返回客戶端「request entity too large」 413錯誤,預設值是1m;

d. location六種表示

方式描述

=uri和位置的精確匹配,如果找到完全匹配,搜尋停止,優先順序最高

^~不做正規表示式匹配,常規字串匹配

~*不區分大小寫的正規表示式匹配

~區分大小寫的正規表示式匹配

/所有的指令都不匹配時用它

@非常規請求,用於請求重定向

匹配順序:

首先:nginx檢查使用了字首字串定義的指令快,選中並記住具有最長匹配字首的指令快;

其次:按照配置檔案裡出現的先後順序來匹配正規表示式,搜尋在第一次匹配時終止;

最後:使用/裡的指令內容

e. alias:靜態資源**,忽略location後面的值,只能用在location欄位中;

f. root:靜態資源**,會拼接location後面的值,可以用在http、server、location欄位中;

2. http**模組(http proxy)

b. proxy_set_header:允許將傳送到被**伺服器的請求頭重新定義或增加一些字段,預設值是host and connection,使用欄位在http,server,location;

proxy_set_header x-real-ip $remote_addr;  // 真實客戶端ip

proxy_set_header x-forwarded-proto $scheme;  // 訪問協議

proxy_set_header x-forwarded-host $host;  // 訪問主機ip

proxy_set_header x-forwarded-port $server_port;  // 訪問主機埠

c. proxy_connect_timeout:指定乙個連線到**伺服器的超時時間,預設值是60s,使用欄位在http,server,location;

d. proxy_send_timeout:設定**伺服器**請求的超時時間,如果超了,nginx將關閉連線,預設值是60s,使用欄位在http,server,location;

e. proxy_read_timeout:設定讀取後端伺服器應答的超時時間,預設值是60s,使用欄位在http,server,location。

3. http頭處理模組(http headers)

a. add_header:只會在響應頭部中增加某個新字段,不能對已經定義的頭進行重寫,語法:add_header name value,可以設定跨域;

add_header set-cookie 'cookiename=cookievalue';

b. expires:在應答中標記乙個過期時間 ,語法:expires time;  

4. http基本認證模組(http auth basic)

a. auth_basic:用來基於使用者名稱和密碼的http基礎驗證,語法:auth_basic text,可以第三方介面驗證;

b. auth_basic_user_file:為驗證域指定了密碼檔案,語法:auth_basic_user_file the_file;

5. http負載均衡模組(http upstream)

a. upstream:為後端提供簡單的負載均衡;

6. 預設主頁設定模組(index)

a. index:如果url中沒有指定檔案,則設定乙個預設主頁,語法:index file-path;

7. ssl模組(ssl)

a. ssl:是否開啟https,語法:ssl [on|off],預設值off;

b. ssl_certificate:指定pem格式的證書檔案,乙個檔案可以包含其他的證書,語法:ssl_certificate file,路徑可以為相對路徑,證書生成可參考自簽名ssl證書;

c. ssl_certificate_key:指定pem格式的秘鑰,語法:ssl_certificate_key file,路徑可以為相對路徑;

d. ssl_ciphers file:指定允許的密碼,格式ssl_ciphers file,預設值all:!adh:rc4+rsa:+high:+medium:+low:+sslv2:+exp;

e. ssl_protocols:指定要使用的ssl協議,語法:ssl_protocols [sslv2] [sslv3] [tlsv1];

f. ssl_session_cache:設定儲存ssl會話的快取型別和大小,語法:ssl_session_cache off;

g. ssl_session_timeout:設定客戶端能否反覆使用儲存在快取中的會話引數時間,語法:ssl_session_timeout time;

8. 字符集設定模組(charset)

a. charset:對響應頭中「content-type」字段使用指定的編碼集,語法:charset encoding|off,預設值off;

9. url重寫模組(rewrite)

a. break:完成當前設定的規則,停止執行其他的重寫命令;

b. if:判斷條件成立與否,從而是否執行大括號內的語句;

c. return:結束執行配置語句並為客戶端返回狀態**,可以使用下列的值204,400,402-406,408,410, 411, 413, 416與500-504;

d. rewrite:實現url重定向,根據正規表示式來匹配內容跳轉到replacement,結尾是flag標記,語法為:rewrite regex replacement [flag];

last:本條規則匹配完成後繼續向下匹配新的location uri規則;

break:本條規則匹配完成後終止,不再匹配任何規則;

redirect:返回302臨時重定向;

permanent:返回301永久重定向;

e. set:設定乙個變數並為其賦值,語法:set variable value;

10. nginx.conf配置檔案

a. 配置檔案組成:全域性塊+events塊+http塊

b. work數應該和cpu數相等;

c. master是管理員,work是具體的工作程序,乙個master多個work可以使用熱部署;

#user  nobody;

worker_processes 1;

# 錯誤日誌

# 包含虛擬主機的配置

可參考:nginx中文手冊

nginx的變數引數

nginx核心模組常用指令

預設啟動nginx時,使用的配置檔案是 安裝路徑 conf nginx.conf 檔案,可以在啟動nginx的時候,通過 c來指定要讀取的配置檔案 常見的配置檔案有如下幾個 核心模組指令 error log include pid user worker cpu affinity worker pr...

nginx常用模組

需要的伺服器角色 外網ip 內網ip 主機名web eth0 10.0.0.7 eth1 172.16.1.7 web01 autoindex 目錄索引 root web01 cat etc nginx conf.d mirror.oldxu.com.conf server root web01 m...

nginx常用模組歸納

目錄 nginx功能詳解.2 一 proxy pass.2 二 rewrite.3 三 log format.4 四 ssl證書加密配置.5 五 sendfile.6 六 keepalive timeout.7 七 gzip.7 八 客戶端上傳檔案限制.7 九 worker processes和wo...