1. 程式人生 > >nginx windows 環境模擬負載(簡單)

nginx windows 環境模擬負載(簡單)

背景:隨著訪問量的增加和併發的提高,伺服器的壓力會越來越大,此時需要部署多臺伺服器來分攤壓力(分散式部署),

服務分攤開來,是資料前段分佈服務,即在服務層之前的分佈負載,此時需要一個工具將所有分散式伺服器和訪問進行條件負載連線;

nginx下載地址(windows環境模擬下載windows版本):

http://nginx.org/en/download.html

注:nginx下載後本地解壓時,解壓的資料夾不能帶中文,需要解壓到非中文資料夾,否早啟動不了報錯;

雙擊nginx.exe啟動檔案後,去工作管理員-->程序-->重尋找nginx程序,如果沒找到,去檢視nginx解壓目錄下的logs檔案下的

error.log檔案:

錯誤:failed (1113: No mapping for the Unicode character exists in the target multi-byte code page)  這個錯誤是因為解壓在中文目錄下了,改下解壓目錄名字為英文即可;

upstream 關鍵字後面的代理服務名字不要帶特殊字元,否則服務無法訪問(錯誤提示在tomcat控制檯顯示)

 

負載模型(簡單):

         |------------------>tomcat1       |

         |------------------>tomcat2       |

nginx|------------------>tomcat3       | ------------------------->服務層------->資料層

         |------------------>tomcat4       |

         |------------------>tomcat......   |

 

上面是基本的模型,這個nginx負載需要簡單的配置一下nginx,即在conf資料夾下編輯nginx.conf檔案:

 

 

多個tomcat配置在upstream 下面

配置完畢,瀏覽器輸入:localhost即可訪問配置負載的兩臺tomcat伺服器

注:nginx負載均衡有多種負載策略:

1:輪詢

每個請求按時間順序逐一分配到不同的應用伺服器,如果應用伺服器down掉,自動剔除,剩下的繼續輪詢

2:權重

通過配置權重,指定輪詢機率,權重和訪問比率成正比,用於應用伺服器效能不均的情況。

3:ip_雜湊演算法

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個應用伺服器,可以解決session共享的問題。

 

upstream localtomcat{
      server 192.168.1.104:40 down;
      server 192.168.1.104:50 weight=4;

      server 192.168.1.104:60;

      server 192.168.1.104:70 backup;
    }

1)down

    表示單前的server暫時不參與負載

2)Weight

    預設為1.weight越大,負載的權重就越大。

3)max_fails

    允許請求失敗的次數預設為1.當超過最大次數時,返回proxy_next_upstream 模組定義的錯誤

4)fail_timeout

    max_fails 次失敗後,暫停的時間。

5)Backup

    其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。