版權聲明:本文爲yunshuxueyuan原創文章。
如需轉載請標明出處: http://www.cnblogs.com/sxt-zkys/
QQ技術交流羣:299142667css
1. 基本介紹html
負載均衡集羣是 load balance 集羣的簡寫,翻譯成中文就是負載均衡集羣。經常使用的負載均衡開源軟件有nginx、lvs、haproxy,商業的硬件負載均衡設備F五、Netscale。這裏主要是學習 LVS 並對其進行了詳細的總結記錄。java
LB集羣的架構和原理很簡單,就是當用戶的請求過來時,會直接分發到Director Server上,而後它把用戶的請求根據設置好的調度算法,智能均衡地分發到後端真正服務器(real server)上。爲了不不一樣機器上用戶請求獲得的數據不同,須要用到了共享存儲,這樣保證全部用戶請求的數據是同樣的。nginx
2. Lvs的組成:web
LVS 由2部分程序組成,包括 ipvs 和 ipvsadm。算法
1. ipvs(ip virtual server):一段代碼工做在內核空間,叫ipvs,是真正生效實現調度的代碼。後端
2. ipvsadm:另一段是工做在用戶空間,叫ipvsadm,負責爲ipvs內核框架編寫規則,定義誰是集羣服務,而誰是後端真實的服務器(Real Server)緩存
3. Lvs配置步驟:tomcat
a. 準備好3臺虛擬機,配置ip在同一網段服務器
b. 配置lvs的VIP
c. 調整後端真實server的響應,通告級別(每一臺)
d. 調整後端真實server的VIP(每一臺)
e. 啓動真實server上的httpd服務,並編寫歡迎頁面
f. 在LVS主機器上安裝ipvsadm,並配置
g. 保存規則:
h. 載入此前規則:
1. 定義
Keepalived 是一個基於VRRP協議來實現的LVS服務高可用方案,能夠利用其來避免單點故障。一個LVS服務會有2臺服務器運行Keepalived,一臺爲主服務器(MASTER),一臺爲備份服務器(BACKUP),可是對外表現爲一個虛擬IP,主服務器會發送特定的消息給備份服務器,當備份服務器收不到這個消息的時候,即主服務器宕機的時候, 備份服務器就會接管虛擬IP,繼續提供服務,從而保證了高可用性。Keepalived是VRRP的完美實現。
2. 安裝配置:
1. Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。
2. 安裝:
a. 下載源碼包
b. 解壓縮:tar xf filename
c. ./configure
檢查操做系統
檢查編譯環境
yum install gcc
pcre 依賴庫
yum search pcre
yum install pcre-devel
openssl
yum install opssl-devel
./configure --help
./configure --prefix=/opt/sxt/nginx
d. make && make install
3. 添加tengine到註冊表,將下面文件中的代碼,拷貝到/etc/init.d/nginx中;而後就可使用service命令了
4. 配置:
a. 文件結構
全局塊:配置影響nginx全局的指令。通常有運行nginx服務器的用戶組,nginx進程pid存放路徑,日誌存放路徑,配置文件引入,容許生成worker process數等。
events塊:配置影響nginx服務器或與用戶的網絡鏈接。有每一個進程的最大鏈接數,選取哪一種事件驅動模型處理鏈接請求,是否容許同時接受多個網路鏈接,開啓多個網絡鏈接序列化等。
http塊:能夠嵌套多個server,配置代理,緩存,日誌定義等絕大多數功能和第三方模塊的配置。如文件引入,mime-type定義,日誌自定義,是否使用sendfile傳輸文件,鏈接超時時間,單鏈接請求數等。
server塊:配置虛擬主機的相關參數,一個http中能夠有多個server。
location塊:配置請求的路由,以及各類頁面的處理狀況。
b. 配置文件示例:
c. location匹配規則:
先普通
順序無關
最大前綴
匹配規則簡單
打斷:
^~
徹底匹配
再正則
不徹底匹配
正則特殊性:一條URI能夠和多條location匹配上
有順序的
先匹配,先應用,即時退出匹配
5. session共享及一致性解決方案:
a. memcached緩存服務,能夠和tomcat整合
b. 安裝memcached
yum install memcached –y
c. 啓動memcached
memcached -d -m 128m -p 11211 -l 192.168.122.111 -u root -P /tmp/
d. 拷貝memcached相關jar包到tomcat的lib下
e. 配置tomcat,每一個tomcat裏面的context.xml中加入