常用的nginx 配置

2021-06-23 01:08:56 字數 3858 閱讀 2981

user

wwwwww;#

nginx

使用的使用者及使用者組

也有些人用

user

nobody

;這個使用者

worker_processes8;

#8個worker

,一般和核心數一樣

#全域性錯誤日誌(可設定日誌級別,)及pid檔案

#error_log logs/error.log; # 這是相對目錄,也可以用絕對路徑

#error_log logs/error.log notice;可選的日誌級別有 debug info notice warn error crit

#error_log logs/error.log info;

#pid logs/nginx.pid; # 指定pid存放的路徑

#指定檔案描述符數量

#worker_rlimit_nofile 51200;

#工作模式以及連線數上線

#禁止訪問

.ht***

檔案location~/

.ht}}

location 符號 規則

進來的請求url按照符號對應的命令匹配規則,

location ~ /.ht即使匹配路徑後面汗 ht 字元的url。

符號規則

~正則匹配

~*不區分大小寫

=精確匹配

^~nginx 通過ngx_http_rewrite_module模組支援url重寫,支援if條件判斷,但是不支援else。

rewrite在server塊中執行。找到location然後在location中執行選定的rewrite指令。

nginx中,如果rewrite超過10次,就返回500了。

if中可以使用break指令。

if條件判斷:

)# return,停止處理並返回指定狀態碼給客戶端

rewrite 的格式是 rewrite regex replacement[flag];

如果乙個uri匹配指定的正規表示式regex,uri就按照replacement重寫。

rewrite按配置檔案中出現的順序執行。flags標誌可以停止繼續處理。

如果replacement以"http://"或"https://"開始,將不再繼續處理,這個重定向將返回給客戶端。

flag可以是如下引數:

最終完整的重定向url包括請求scheme(http://,https://等),請求的server_name_in_redirect和 port_in_redirec三部分 ,說白了也就是http協議 網域名稱 埠三部分組成。

upstream 定義了一組後端伺服器,可以在 proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass 呼叫.

舉個例子.

upstream backend 

server

match welcome

}

定義一組伺服器,可以用不同的埠號,能堅挺tcp和 unix協議.

預設採用迴圈的分配訪問策略.比如以上這個例子,每7個請求,有5個在backend1.example.com中,第二和第三個sever各乙個.

4.1 server 語法

位於upstream 上下文中

server address [parameters];

1. weight=number   設定這個server的權重. 預設1

2. max_fails=number 自動重連次數, 時間達到 fail_timeout定義的時間之後就開始重連,這是最大重連次數  預設1

3. fail_time=number 預設 10s

4. backup  設定這個伺服器為後備伺服器,只有前面的伺服器失效之後,才啟用這個伺服器

5. down 停用這個伺服器,和ip_hash 策略聯用

6. zone,  hash  不懂

7, ip_hash 請求分配的策略,採用ip 雜湊的方式,同乙個使用者的請求分配到同一臺機子

8. keepalive=number 設定伺服器能保持住的最大連線數

4.2 health_check 語法

health_check 在location 的上下文中使用

health_check [parameters] 心跳檢測.其中的引數有,

1. interval=time(10s) 兩次檢測的時間間隔;

2. fails=number(1)檢測的失敗這麼多次之後就可以認為這個伺服器失效了

3.    passes=number(1) 檢測到這麼多次成功之後就可以認為這個伺服器是有效的

4.   uri=uri(/) 心跳檢測用的uri  ;

5    match=name 如果response中包含這個match算檢測成功一次, match 可以檢測返回碼, header ,body. 預設是檢測返回碼是否是 2xx 或者 3xx;

upstream 的一組伺服器可能對應多個心跳檢測,只要乙個檢測認為某個伺服器失效,那就所有都認為其失效.

4.3 match 語法

上面提到了match . match 的上下文是http

status 200;   返回碼是200

status ! 500; 返回碼不是500

status 200 204; 返回碼是 200 或者 204

status ! 301 302; 返回碼不是 301 也不是 302

status 200-399;status ! 400-599;status 301-303 307;

header content-type = text/html;  頭部中包含這個

header content-type != text/html;header connection ~ close;header connection !~ close; 這兩個是正則匹配header host;  頭部中包含這個'host' 字段

header ! x-accel-redirect;

body ~ "welcome to nginx!";body !~ "welcome to nginx!";

在response中只有前 256k的資料才會參與這些匹配

4.4  queue語法

在 upstream 的上下文中

queue number [timeout]  這個是在請求的達到nginx的最大連線數時將後面進來的請求暫存到這個佇列中.

此外 upstream 中還有sticky_cookie_insertsticky (關於cookies), upstream_conf(動態改變upstream 配置) 這些比較少用,以後再查文件.

nginx常用配置

官檔 nginx的負載均衡主要依賴這個模組 ngx http upstream module 1 安裝好nginx 192.168.1.111 2 修改egrep v nginx.conf.default nginx.conf 對其進行修改 訪問server name的時候,會找listen埠,所有...

Nginx常用配置

允許跨域 add header access control allow origin 配置 的使用者訪問認證 生成密碼檔案 htpasswd b c sitepasswd pigt password 配置訪問授權 auth basic input you user name and passwor...

nginx常用配置

其主要分為幾個模組 全域性快從開始到events塊之間的一部分內容,其作用域為全域性作用域 events塊 主要負責nginx伺服器與使用者的網路連線 常用設定 是否開啟多work process下的網路連線進行序列化 師傅允許接收多個網路連線 選取哪種驅動模型連線請求 process 最大連線數 ...