阿里雲linux下Nginx整合Tomcat實現負載均衡集羣

Linux集羣主要分成三大類( 高可用集羣, 負載均衡集羣,科學計算集羣)(下面只介紹負載均衡集羣) 
1、負載均衡集羣(Load Balance Cluster) 
負載均衡系統:集羣中所有的節點都處於活動狀態,它們分攤系統的工作負載。一般Web服務器集羣、數據集羣和應用服務集羣都屬於這種類型。 
 
 
負載均衡集羣一般用於相應網絡請求的網頁服務器,數據庫服務器。這種集羣可以在接到請求時,檢查接受請求較少,不繁忙的服務器,並把請求轉到這些服務器上。從檢查其他服務器狀態這一點上看,負載均衡和容錯集羣很接近,不同之處是數量上更多。 
 
 
2、負載均衡系統: 負載均衡又有DNS負載均衡(比較常用)、IP負載均衡、反向代理負載均衡等,也就是在集羣中有服務器A、B、C,它們都是互不影響,互不相干的,任何一臺的機器宕了,都不會影響其他機器的運行,當用戶來一個請求,有負載均衡器的算法決定由哪臺機器來處理,假如你的算法是採用round算法,有用戶a、b、c,那麼分別由服務器A、B、C來處理; 
 
 
3、分佈式是指將不同的業務分佈在不同的地方。 
而集羣指的是將幾臺服務器集中在一起,實現同一業務。 
分佈式中的每一個節點,都可以做集羣。  
而集羣並不一定就是分佈式的。  
舉例:就比如新浪網,訪問的人多了,他可以做一個羣集,前面放一個響應服務器,後面幾臺服務器完成同一業務,如果有業務訪問的時候,響應服務器看哪臺服務器的負載不是很重,就將給哪一臺去完成。 
而分佈式,從窄意上理解,也跟集羣差不多, 但是它的組織比較鬆散,不像集羣,有一個組織性,一臺服務器垮了,其它的服務器可以頂上來。 
分佈式的每一個節點,都完成不同的業務,一個節點垮了,哪這個業務就不可訪問了。 
========================================================================== 
以上是對集羣 做一個簡單的介紹、不要單純的爲了集羣而集羣、最起碼要理解其中的意思。 
 
 
集羣分爲橫向集羣和縱向集羣: 
縱向意思就是在一臺服務器上安裝多個web服務(公用內存,CPU), 橫向就是多臺服務,每臺服務器都各的web服務。大體基本就是這麼個意思。 
 
 
 
一、安裝所需軟件 
nginx-1.9.4、apache-tomcat-7.0.63、jdk7 (三者的安裝這裏不做介紹、假設都已經安裝好) 

 

二、架構圖

                                                                                |                     |----------|                   |

                                                                                |                     |             |                    |

                                                                                |                     |             |                    |

                                                                                |                     |----------|                    |                         |---------------|

                                                                                |                 Tomcat集羣1                |                         |                    |

                                                     |--------------|      |                 192.168.0.11                |                         |                     |

    外網訪問                                 |                   |      |                                                        |                          |                    |

-------------------------------------->|                   |      |                     |----------|                    |                          |---------------|

                                                     |                   |      |                     |              |                   |                            內容服務器

                                                     |--------------|      |                     |              |                   |                            192.168.0.14

                                                  Nginx負載均衡   |                      |----------|                   |

                                                192.168.0.10       |                   Tomcat集羣2              |

                                                                               |                   192.168.0.12              |

                                                                               |                                                         |                             |---------------|

                                                                               |                       |----------|                   |                             |                    |

                                                                               |                       |             |                   |                              |                    |

                                                                               |                       |             |                   |                              |                    |

                                                                               |                       |----------|                   |                              |---------------|

                                                                               |                   Tomcat集羣3              |                               數據服務器

                                                                               |                    192.168.0.13             |                                192.168.0.15



說明:

1、這裏選擇三臺服務器、每臺服務器安裝一個tomcat。 
2、所有的代碼都存放在內容服務器上,內容服務器提供文件共享,集羣機通過cifs方式映射爲web目錄,這樣便於統一管理和即時同步。


三、整合Nginx和Tomcat由於本身就是一臺服務器、所以這裏選擇縱向集羣、使用一臺服務器安裝Nginx和2臺Tomcat。 
(下面的配置如果沒有安裝過Nginx和Tomcat、請自行補腦) 
1、cd  /usr/local/nginx/conf  切換到conf目錄下。 
 
 
2、mkdir balance  #新建負載均衡目錄、目的是爲了區分 
 
 
3、vi upstream.conf  加入一下代碼:

  1. upstream love {
  2.      server localhost:8082 weight=1  max_fails=2 fail_timeout=30s;
  3.      server localhost:8083 weight=1  max_fails=2 fail_timeout=30s;
  4. }
4、vi  vhost.conf  加入一下代碼:

  1. server {
  2.         listen       80;
  3.         server_name  love.52itstyle.com;
  4.         charset utf8;
  5.         location / {
  6.              proxy_next_upstream http_502  http_504 error timeout invalid_header;
  7.              proxy_set_header        Host $host;
  8.              proxy_set_header        X-Real-IP $remote_addr; #獲取真實IP
  9.              proxy_set_header        X-Forwarded-For   $proxy_add_x_forwarded_for; #獲取代理者的真實ip
  10.              proxy_pass      http://love;
  11.         }
  12.         location ~ .*\.(jsp|action|do)?$ {
  13.              proxy_set_header        Host $host;
  14.              proxy_set_header        X-Real-IP $remote_addr; #獲取真實IP
  15.              proxy_set_header        X-Forwarded-For   $proxy_add_x_forwarded_for; #獲取代理者的真實ip
  16.              proxy_pass      http://love;
  17.         }
  18.         location ~ /purge(/.*) {
  19.             #設置只允許指定的IP或IP段纔可以清除URL緩存。
  20.             #allow   192.168.1.66;
  21.             #deny    all;
  22.             proxy_cache_purge  cache $host$1$is_args$args;
  23.             error_page 405 =200 /purge$1;
  24.         }
  25.         location ~ .*.(css|png|gif|jpg|js)$
  26.         {
  27.             proxy_pass      http://love;
  28.             proxy_cache cache;
  29.             add_header Nginx-Cache $upstream_cache_status;
  30.             proxy_set_header Accept-Encoding 'gzip';
  31.             expires 30d;
  32.         }
  33.       
  34.     }
5、把以上2個文件導入nginx.conf
  1. http {
  2.     include       mime.types;
  3.     default_type  application/octet-stream;
  4.     include       proxy.conf;  #一定要指向代理文件
  5.     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  6.                       '$status $body_bytes_sent "$http_referer" '
  7.                       '"$http_user_agent" "$http_x_forwarded_for"'
  8.                       '"$upstream_cache_status"';

  9.     sendfile        on;
  10.     keepalive_timeout  65;
  11.   
  12.     include balance/upstream.conf;
  13.     include balance/vhost.conf;
  14. }
重啓 Nginx  ./nginx -s reload



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章