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,就是在網際網路範圍內廣發設定多個節點作為 快取,並將使用者的訪問請求導向最近的快取節點,以加快訪問速度的一種技術手段。那麼,使用者的訪問請求是如何被導向最...