利用nginx實現負載均衡

2021-09-25 00:15:01 字數 1558 閱讀 2184

我這裡是使用docker安裝的。安裝流程可參照 dockerfile

這裡安裝了兩個tomcat,埠分別是42000和42001。第二個tomcat的首頁隨便加了些**區分

#這裡的網域名稱要和下面proxy_pass的一樣

重新整理頁面發現頁面會發生變化,證明負載配置成功。因為我配的權重第二個是第乙個的兩倍,所以第二個出現的概率會是第乙個的兩倍。

如果關了tomcat1,再多次重新整理頁面,接下來出現的就會都是tomcat2的頁面,但是時而快時而慢。這其中原因是當如果nginx將請求**到tomcat2時,伺服器會馬上跳轉成功,但是如果是轉到tomcat1,因為tomcat1已經關閉了,所以會出現一段等待響應過程的過程,要等它失敗後才會轉到tomcat2。

而這個等待響應的時間我們是可以配置的。

這個時間由以下3個引數控制:

proxy_connect_timeout:與伺服器連線的超時時間,預設60s

fail_timeout:當該時間內伺服器沒響應,則認為伺服器失效,預設10s

max_fails:允許連線失敗次數,預設為1

等待時間 = proxy_connect_timeout + fail_timeout * max_fails

如果我這樣配置的話,只需等待6秒就可以了。

1、輪詢

這種是預設的策略,把每個請求按順序逐一分配到不同的server,如果server掛掉,能自動剔除。

upstream  fengzp.com
2、最少連線

把請求分配到連線數最少的server

upstream

fengzp

.com

3、權重

使用weight來指定server訪問比率,weight預設是1。以下配置會是server2訪問的比例是server1的兩倍。

upstream  fengzp.com
4、ip_hash

每個請求會按照訪問ip的hash值分配,這樣同一客戶端連續的web請求都會被分發到同一server進行處理,可以解決session的問題。如果server掛掉,能自動剔除。

upstream

fengzp

.com

ip_hash可以和weight結合使用。

利用Nginx做負載均衡

最近正在研究nginx,nginx作為反向 伺服器,可以對web伺服器提供加速,並且具有負載均衡的功能。在windows版本中,將壓縮包進行解壓,執行命令 1 start nginx 這樣就可以啟動nginx服務了。而執行命令 1 nginx s stop 可以停止服務。這是我在192.168.3....

利用Nginx做負載均衡

最近正在研究nginx,nginx作為反向 伺服器,可以對web伺服器提供加速,並且具有負載均衡的功能。在windows版本中,將壓縮包進行解壓,執行命令 1 start nginx 這樣就可以啟動nginx服務了。而執行命令 1 nginx s stop 可以停止服務。這是我在192.168.3....

利用Nginx做負載均衡

最近正在研究nginx,nginx作為反向 伺服器,可以對web伺服器提供加速,並且具有負載均衡的功能。在windows版本中,將壓縮包進行解壓,執行命令 1start nginx 這樣就可以啟動nginx服務了。而執行命令 1nginx s stop 可以停止服務。這是我在192.168.3.82...