摘要:常用的狀態有,表示當前的暫時不參與負載均衡。當負載調度算法為時,后端服務器在負載均衡調度中的狀態不能是和。
反向代理概念MonkeyEye(猿眼售票系統)項目地址:
https://github.com/SYSUMonkeyEye/MonkeyEye-FE
反向代理作用 1. 保護和隱藏Web服務器反向代理(Reverse Proxy)方式是指以代理服務器來接受客戶端連接請求,然后將請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給客戶端,此時代理服務器對外就表現為一個服務器。
用戶始終認為它訪問的是Web服務器而不是代理服務器,但實際上是反向代理服務器接受用戶的請求,從Web服務器中取得用戶的需求資源,然后發送給用戶。未經授權的用戶無法訪問到真正的Web服務器,因為防火墻只允許代理服務器有權進行訪問。
2. 負載均衡由上圖可以推出,反向代理服務器管理了一組服務器,可以根據對應的負載均衡算法將不同的請求轉發到不同的服務器上,服務器處理完成的響應也通過代理服務器返回給用戶。
與此同時,反相代理服務器還可以具有存儲靜態數據用于緩存的功能,從而加速處理用戶請求,提高服務器處理性能,其工作原理大概如下圖所示:
反向代理服務器轉發請求處于應用層協議上,因此,也稱之為應用層負載均衡。該負載均衡方案與反向代理服務器功能集成到了一起,部署相對簡單。但是,反向代理服務器會處理所有的請求和響應,其性能可能會成為整個集群的瓶頸。
負載均衡配置 upstreamupstream是Nginx的HTTP Upstream模塊,這個模塊通過一個簡單的調度算法來實現客戶端IP地址到后端服務器的負載均衡。在Nginx的配置文件中,可以通過upstream指令指定一個負載均衡器的名稱。這個名稱可以任意指定,在后面需要用到的地方直接調用即可。
調度算法Nginx的負載均衡模塊目前支持5種調度算法,下面進行分別介紹,其中后兩項屬于第三方調度算法。
輪詢(默認)。每個請求按時間順序逐一分配到不同的后端服務器,如果后端某臺服務器宕機,故障系統被自動剔除,使用戶訪問不受影響。
upstream backserver { server 192.168.0.14; server 192.168.0.15; }
指定權重。指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況。
upstream backserver { server 192.168.0.14 weight=1; server 192.168.0.15 weight=2; }
ip_hash。每個請求按訪問IP的hash結果分配,這樣來自同一個IP的訪客固定訪問一個后端服務器,有效解決了動態網頁存在的session共享問題。
upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; }
fair(第三方)。這是比上面兩個更加智能的負載均衡算法。這種算法可以依據頁面大小和加載時間長短智能地進行負載均衡,也就是根據后端服務器的響應時間來分配請求,響應時間短的優先分配。Nginx本身是不支持fair的,如果需要使用這種調度算法,必須下載Nginx的upstream_fair模塊。
upstream backserver { server server1; server server2; fair; }
url_hash(第三方)。此方法按訪問url的hash結果來分配請求,使每個url重定向到同一個后端服務器,可以進一步提高后端緩存服務器的效率。Nginx本身是不支持url_hash的,如果需要使用這種調度算法,必須安裝Nginx的hash軟件包。
upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }upstream支持的狀態參數
在HTTP Upstream模塊中,可以通過server指令指定后端服務器的IP地址和端口,同時還可以設定每個后端服務器在負載均衡調度中的狀態。常用的狀態有:
down,表示當前的server暫時不參與負載均衡。
backup,預留的備份機器。當其他所有的非backup機器出現故障或者忙的時候,才會請求backup機器,因此這臺機器的壓力最輕。
max_fails,允許請求失敗的次數,默認為1。當超過最大次數時,返回proxy_next_upstream模塊定義的錯誤。
fail_timeout,在經歷了max_fails次失敗后,暫停服務的時間。max_fails可以和fail_timeout一起使用。
當負載調度算法為ip_hash時,后端服務器在負載均衡調度中的狀態不能是weight和backup。
upstream backend { server 127.0.0.1:6060; server 127.0.0.1:9090 down; server 127.0.0.1:7070 backup; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39554.html
摘要:猿眼售票系統項目地址以下是我們項目的部署圖可以從上圖看到,其中后臺有臺靜態文件服務器,臺服務器,服務器儲存電影和用戶相關信息和服務器儲存和短信驗證碼。本人負責服務器的反向代理配置,將請求分發至對應的服務器,并實現多臺服務器的負載均衡。 MonkeyEye(猿眼售票系統)項目地址:https://github.com/SYSUMonkeyEye/MonkeyEye-FE 以下是我們項目的...
摘要:注意注解能注冊到服務上,是因為該注解包含了客戶端的注解,該是一個復合注解。地址可以查看該微服務網關代理了多少微服務的。 SpringCloud(第 018 篇)Zuul 服務 API 網關微服務之代理與反向代理 - 一、大致介紹 1、API 服務網關顧名思義就是統一入口,類似 nginx、F5 等功能一樣,統一代理控制請求入口,弱化各個微服務被客戶端記憶功能; 2、本章節主要講解了使用...
寫在最前 這是根據 imooc 上 Scott 老師的課程整理的,主要是方便自己查找,因為真的記不住... 附上鏈接:Node.js項目線上服務器部署與發布 靜態網站,需要數據庫的電影網站、公眾號,小程序,app 五種項目的部署。這里只寫最簡單的靜態網站的部署 部署思路 1、完成項目2、購買域名,備案,解析一些二級域名出來備用3、購買服務器 4、ssh 遠程登錄服務器 并進行一些安全配置5、服務...
寫在最前 這是根據 imooc 上 Scott 老師的課程整理的,主要是方便自己查找,因為真的記不住... 附上鏈接:Node.js項目線上服務器部署與發布 靜態網站,需要數據庫的電影網站、公眾號,小程序,app 五種項目的部署。這里只寫最簡單的靜態網站的部署 部署思路 1、完成項目2、購買域名,備案,解析一些二級域名出來備用3、購買服務器 4、ssh 遠程登錄服務器 并進行一些安全配置5、服務...
閱讀 2082·2023-04-25 19:03
閱讀 1231·2021-10-14 09:42
閱讀 3412·2021-09-22 15:16
閱讀 994·2021-09-10 10:51
閱讀 1568·2021-09-06 15:00
閱讀 2406·2019-08-30 15:55
閱讀 490·2019-08-29 16:22
閱讀 897·2019-08-26 13:49