您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Nginx中怎么實現負載均衡和緩存,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
被代理的服務器出現宕機的情況,如果被 Nginx 發現,那么 Nginx 就會將其自動標識為不可用,并且在一段時間內會禁止入站的請求訪問到該服務器上。
而這個發現服務器宕機的過程就是健康檢測的功能了。Nginx 的健康檢測分為兩種類型,主動檢測和被動檢測,默認的非商用 Nginx 采用的是被動檢測。
所謂的被動檢測是指只有訪問了該服務器之后發現服務器不可用了,才會將其標識為不可用,并且在一定時間內禁止請求分發到該服務器上,而不是主動以一定的頻率去檢查服務器是否可用。
健康檢測有兩個重要參數 max_fails 和 fail_timeout。
fail_timeout 定義了健康檢查的執行時長,而 max_fails 表示服務不可用的最大嘗試次數,當一定時間內(此時間由 fail_timeout 定義),發生了一定次數的服務器不響應的事件(此次數由 max_fails 定義),那么 Nginx 就會將該服務器標識為不可用的服務器,并且在一定時間內禁止請求分發到該服務器。默認情況下 max_fails 設置為 1,當它設置為 0 時表示禁用此服務器的運行狀況檢查,它的配置示例如下:
當服務器被標識為不可用時,只有達到了 fail_timeout 定義的時間后,才會進行再一次的健康請求檢測。
而主動健康檢測的實現方案有兩種,一種是使用商用的 Nginx Plus 來配置主動健康檢測,另一種是使用開源的第三方模塊 nginx_upstream_check_module 來實現主動健康檢測。
Nginx Plus 和 nginx_upstream_check_module 模塊的主動健康檢查配置大體都是一樣的,它的配置示例如下:
其中,check_http_send 表示發送請求的內容,而 check_http_expect_alive 是服務器正常情況下的響應狀態碼,如果后端服務器的響應狀態包含在此配置中,則說明是健康的狀態。
我們可以開啟 Nginx 的靜態資源緩存,將一些不變的靜態文件,比如圖片、CSS、JS 等文件進行緩存,這樣在客戶端訪問這些資源時就不用去訪問服務器了,因此響應的速度就可以大幅提升,并且節省了寶貴的服務器資源。
Nginx 開啟緩存需要在 http 節點中配置 proxy_cache_path 信息,以及 server 節點中配置要緩存資源的后綴名,它的配置示例如下:
其中,proxy_cache_path 配置的是緩存的目錄信息,以及緩存的保存時間 inactive,還有緩存的大小等信息;而“access_log off”表示關閉日志功能,proxy_pass 表示當第一次沒有緩存時的請求地址,之后便會將訪問到的資源緩存起來。
看完上述內容,你們對Nginx中怎么實現負載均衡和緩存有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。