Nginx和tomcat負載均衡

 

Nginx均衡負載nginx

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf算法

upstream tomcat_server {
  server 192.168.200.112:8080 weight=1;
  server 192.168.200.113:8080 weight=1;vim

}後端


server {
    ........................tomcat

  location ~* \.jsp$ {
  proxy_pass http://tomcat_server;
  proxy_set_header Host $http_host;
}服務器

    .........................session

}負載均衡

Nginx負載均衡算法jsp

1.輪詢(默認)性能

請求按時間順序分配不一樣的服務器。

upstream tomcat_server {
  server 192.168.200.112:8080 weight=1;
  server 192.168.200.113:8080 weight=1;

}

weigh值越大分配到的訪問機率越高,用於後臺服務器性能不均衡的狀況下。

upstream tomcat_server {
  server 192.168.200.112:8080 weight=1;
  server 192.168.200.113:8080 weight=2;

}

2.least_conn

least_connected方式能夠更公平的將負載分配到多個機器上面。nginx不會將請求分發到繁忙的機器上。

upstream tomcat_server {

  least_conn;
  server 192.168.200.112:8080 weight=1;
  server 192.168.200.113:8080 weight=1;

}

3.ip_hash

每一個請求按訪問IP的哈希結果分配,使來自同一個IP的訪客固定訪問一臺服務器,而且能夠有效解決動態網頁存在的session共享問題。

upstream tomcat_server {

  ip_hash;
  server 192.168.200.112:8080 weight=1;
  server 192.168.200.113:8080 weight=1;

}

4.fair

能夠根據頁面大小和加載時間長短智能地進行負載均衡,也就是根據後端服務器的響應時間來分切請求,響應時間短的優先分配。Nginx自己不支持fair,若是須要這種調度算法,則必須安裝upstream_fair。

upstream tomcat_server {

  fair;
  server 192.168.200.112:8080 weight=1;
  server 192.168.200.113:8080 weight=1;

}

5.url_hash

按訪問的URL的哈希結果來分配請求,使每一個URL定向到一臺後端服務器,能夠進一步提升效率。Nginx自己不支持url_hash,若是須要這種調度算法,則必須安裝Nginx的hash軟件包。

upstream tomcat_server {

  hash $request_url;

  hash_method crc32;
  server 192.168.200.112:8080 weight=1;
  server 192.168.200.113:8080 weight=1;

}

Nginx負載均衡調度狀態

down:表示當前的server暫時不參與負載均衡。

backup:預留的備份器。當其餘全部的非backup機器出現故障時,纔會請求backup機器,所以這臺機器的訪問壓力最低。

max_fails:容許請求失敗的次數,默認爲1,超過期,返回proxy_next_upstream模塊定義的序錯誤。

fail_timeout:請求請求失敗超時時間,在經歷了max_fails次失敗後,暫停服務時間。max_fails和fail_timeout能夠一塊兒使用。

upstream tomcat_server {

  server 192.168.200.112:8080 weight=1;
  server 192.168.200.113:8080 weight=1 bdown;

  server 192.168.200.112:8080 weight=1 backup;
  server 192.168.200.113:8080 weight=1 max_fails=3 fail_timeout=10s;

}

相關文章
相關標籤/搜索