分布式限流面試專題系列之Nginx系列

2021-09-24 01:37:55 字數 1119 閱讀 8468

nginx 是乙個 web 伺服器和反向**伺服器,用於 http、https、smtp、pop3和 imap 協議

nginx 伺服器的特性包括:

反向**/l7 負載均衡器

嵌入式 perl 直譯器

動態二進位制公升級

可用於重新編寫 url,具有非常好的 pcre 支援

nginx 使用反應器模式。主事件迴圈等待作業系統發出準備事件的訊號,這樣資料就可以從套接字讀取,在該例項中讀取到緩衝區並進行處理。單個執行緒可以提供數萬個併發連線。

只需將請求刪除的伺服器就可以定義為:

server

502 =錯誤閘道器

503 =伺服器超載

有可能,但是您可以確保 fastcgi_intercept_errors 被設定為 on,並使用錯

誤頁面指令。

location /

要在 url 中保留雙斜線,就必須使用 merge_slashes_off;

語法:merge_slashes [on/off]

預設值: merge_slashes on

環境: http,server

ngx_http_upstream_module 用於定義可通過 fastcgi 傳遞、proxy 傳遞、uwsgi傳遞、memcached 傳遞和 scgi 傳遞指令來引用的伺服器組

c10k 問題是指無法同時處理大量客戶端(10,000)的網路套接字。

stub_status 指令:該指令用於了解 nginx 當前狀態的當前狀態,如當前的活動連線,接受和處理當前讀/寫/等待連線的總數

sub_filter 指令:它用於搜尋和替換響應中的內容,並快速修復陳舊的資料

您可以使用 nginx 模組 gunzip 將請求壓縮到上游。gunzip 模組是乙個過濾器,它可以對不支援「gzip」編碼方法的客戶機或伺服器使用「內容編碼:gzip」來解壓縮響應

要獲得 nginx 的當前時間,必須使用 ssi 模組、$date_gmt 和$date_local 的變數。

proxy_set_header the-time $date_gmt;

用於執行 nginx -s 引數的可執行檔案。

在編譯過程中,必須選擇 nginx 模組,因為 nginx 不支援模組的執行時間選擇。

分布式技術之限流

ip限流 參看大神部落格 limit req zone 用來限制單位時間內的請求數,即速率限制,採用的漏桶演算法 leaky bucket limit req 配合 limit req zone 使用示例 limit req zone binary remote addr zone mylimit ...

redis lua分布式限流

註解反思 我們專案有好幾個介面,呼叫公司中颱的介面,包括定時器的分片執行還有本人的多執行緒強行壓榨,哈哈。最後加上使用者的瘋狂請求,導致中颱的介面偶爾出現問題,主要是資料庫cpu達到100 昨晚專門做了個限流,那麼技術定型使用什麼呢?ratelimiter?這好像是單機才能玩,sentinel?這個...

分布式限流實戰

由於api介面無法控制呼叫方的行為,因此當遇到瞬時請求量激增時,會導致介面占用過多伺服器資源,使得其他請求響應速度降低或是超時,更有甚者可能導致伺服器宕機。限流 rate limiting 指對應用服務的請求進行限制,例如某一介面的請求限制為100個每秒,對超過限制的請求則進行快速失敗或丟棄。限流可...