nginx 小流量架構

2021-08-13 17:14:20 字數 1798 閱讀 5575

1、怎樣進行分流

2、upstream負載均衡

負載均衡策略:

服務節點的狀態值:

keepalive(俗稱長連線):

3、配置的結構

upstream

其中,server會繼承main和http,location繼承server,而upstream既不會繼承指令也不會被繼承。

nginx在處理每乙個使用者請求時,都是按照若干個不同的階段依次處理的,與配置檔案上的順序沒有關係。

nginx 處理請求的過程一共劃分為 11 個階段,按照執行順序依次是:

post-read、server-rewrite、find-config、rewrite、post-rewrite、 preaccess、access、post-access、try-files、content、log。

例子:set 指令就是在 rewrite 階段執行的,而 echo 指令就只會在 content 階段執行。

在單個請求的處理過程中,rewrite 階段總是在 content 階段之前執行,因此屬於 rewrite 階段的配置指令也總是會無條件地在 content 階段的配置指令之前執行。於是在同乙個 location 配置塊中,set 指令總是會在 echo 指令之前執行,即使我們在配置檔案中有意把 set 語句寫在 echo 語句的後面。

rewrite_by_lua_file

語境:http、server、location、location if

階段:rewrite

作為rewrite階段的處理,為每個請求執行指定的lua**。

各階段的解釋:

1、post-read

讀取請求內容階段,nginx讀取並解析完請求頭之後就立即開始執行;

2、server-rewrite

server請求位址重寫階段;

3、find-config

配置查詢階段,用來完成當前請求與location配重塊之間的配對工作;

4、rewrite

location請求位址重寫階段,當ngx_rewrite指令用於location中,就是再這個階段執行的;

5、post-rewrite

請求位址重寫提交階段,當nginx完成rewrite階段所要求的內部跳轉動作,如果rewrite階段有這個要求的話;

6、preaccess

訪問許可權檢查準備階段,ngx_limit_req和ngx_limit_zone在這個階段執行,ngx_limit_req可以控制請求的訪問頻率,ngx_limit_zone可以控制訪問的併發度;

7、access

許可權檢查階段,ngx_access在這個階段執行,配置指令多是執行訪問控制相關的任務,如檢查使用者的訪問許可權,檢查使用者的**ip是否合法;

8、post-access

訪問許可權檢查提交階段;

9、try-files

配置項try_files處理階段;

10、content

內容產生階段,是所有請求處理階段中最為重要的階段,因為這個階段的指令通常是用來生成http響應內容的;

11、log

日誌模組處理階段;

參考文章:

小知識:

lua_shared_dict:共享記憶體字典項,對所有worker程序可見。

反向**(reverse proxy)方式是指用**伺服器來接受internet 上的連線請求,然後將請求**給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet 上請求連線的客戶端,此時**伺服器對外就表現為乙個反向**伺服器。

Nginx 流量複製

1 需求 將生產環境的流量拷貝到預上線環境或測試環境,這樣做有很多好處,比如 為了實現流量拷貝,nginx提供了ngx http mirror module模組 2 安裝nginx 使用yum安裝nginx,先配置官方源 vim etc yum.repos.d nginx.repo nginx st...

Nginx流量拷貝

廢物大師兄 將生產環境的流量拷貝到預上線環境或測試環境,這樣做有很多好處,比如 首頁,設定yum倉庫。為此,建立乙個檔案 etc yum.repos.d nginx.repo 將以下內容寫入檔案 module hotfixes trueyum安裝nginx yum install nginx預設情況...

架構 CDN流量清洗。

cdn技術的初衷是提高網際網路使用者對 靜態資源的訪問速度,但是由於分布式多節點的特點,它也能夠對分布式拒絕服務攻擊的流量產生稀釋的效果。cdn,就是在網際網路範圍內廣發設定多個節點作為 快取,並將使用者的訪問請求導向最近的快取節點,以加快訪問速度的一種技術手段。那麼,使用者的訪問請求是如何被導向最...