nginx可以實現負載均衡。客戶端請求nginx伺服器,nginx伺服器**請求後端web伺服器組。nginx請求伺服器組時,會根據某種規則(如ip輪詢)實現伺服器組的均衡訪問。
從層次上來看,如果客戶端是第一層,nginx是第二層,後端伺服器組是第三層。那麼對於客戶端來說,其是不知道後邊的兩層的,客戶端只需要訪問nginx即可得到響應。
upstream 後端伺服器組名
upstream屬性定義了後端伺服器組。後端伺服器組名可以任意。
upstream屬性除了可以配置後端伺服器組各伺服器的
ip:port外,還可以配置分發請求的策略:
1)、分別給各伺服器設定權重weight,值越高,
訪問機率越大;
2)、給伺服器
組設定ip_hash;屬性,nginx會根據客戶端的ip來分發請求,每乙個客戶端(ip相同)會訪問固定的後端伺服器。
3)、其他。
listen和server_name屬性定義了nginx的監聽埠和監聽網域名稱。只有當客戶端訪問這一網域名稱時,nginx才會處理請求。
此屬性是客戶端關心的。
注意,該網域名稱是訪問nginx的網域名稱,而不是訪問web服務的網域名稱。網域名稱訪問可以通過配置hosts檔案或者搭建dns伺服器實現。
location屬性:location屬性後邊緊跟的「/」是對訪問路徑的匹配策略,暫不做具體介紹。
重要的是內部的proxy_pass屬性,
該屬性值設定了要訪問的後端伺服器組名,
格式為http://後端伺服器組名(該後端伺服器組名要與上邊upstream中的
後端伺服器名一致)。
此屬性是客戶端不關心的。
第一次使用nginx,遇到一些問題。一開始想不通,想開了就很簡單。
我要搭建的專案是內網專案,都是通過內網ip:port/專案路徑的格式訪問的,如
/com_shop/index.jsp。一開始想的是通過修改nginx的配置檔案來實現由nginx直接定向到該位址,但是如上nginx的配
置檔案中只在upstream中配置了後端伺服器的ip和埠號,在proxy_pass指向前邊的upstream。而沒有對專案路徑的設定。
其實問題換種角度思考就可以解決了。nginx實現不了(我暫時沒有實現)直接定位,可以由訪問後端伺服器ip:port
時展示的html或者jsp實現重定向。
另外一種方式,將要訪問的介面設定為tomcat的預設訪問介面,實現方式為修改server.xml中的的path
屬性。詳見《tomcat部署服務的幾種方式》。
nginx 負載均衡 Nginx負載均衡策略
nginx提供的負載均衡策略有2種 內建策略和擴充套件策略。內建策略為輪詢 預設 加權輪詢,ip hash,第三方。upstream mysvr1 輪詢 每個請求按照時間順序逐一的分配到每乙個後台伺服器上。如果某台伺服器宕機了,將會自動的剔除宕機的服務。nginx預設就是輪詢其權重都預設為1,伺服器...
nginx負載均衡
nginx 的 upstream目前支援 4 種方式的分配 1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2 weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。3 ip hash 每個請求按訪問ip的hash...
nginx負載均衡
nginx s stop quick exit nginx s quit graceful quit nginx s reload changing configuration,starting a new worker,quitting an old worker gracefully nginx...