伺服器叢集搭建
一個好的伺服器叢集必須要做到高併發和負載均衡,伺服器叢集包括三部分組成:前端伺服器,後天伺服器,同步資料庫。前端伺服器最長用的是nginx和LVS,nginx是基於應用層的叢集伺服器,而LVS是基於tcp協議一下的第四層叢集伺服器。我們這裡選擇用nginx做前端伺服器。在這裡我們不在說怎樣安裝nginx,不會安裝的可以看如何在CentOS安裝Nginx?。來安裝nginx.
第一步:準備工作
我們需要現在一臺虛擬機器上安裝nginx,在兩臺虛擬機器上安裝Tomcat。安裝Tomcat步驟如下:
1.下載tomcat安裝包。apache-tomcat-7.0.61.tar.gz
2.用命令tar -zxvf apache-tomcat-7.0.61.tar.gz解壓安裝包。
3.用命令cd apache-tomcat-7.0.61.tar.gz 進入安裝包,用命令make && make install來安裝tomcat。在安裝之前要確定此虛擬機器上已經安裝了JDK.安裝完成後用命令./bin/startup.sh開啟tomcat,用killall java來關閉tomcat.
第二步:配置反向代理
上面我們準備好了兩個tomcat ,現在我們來配置nginx,
1.首先我們先配置一個upstream,upstream配置在http這個節點裡面。如下圖配置:
upstream tomcat {
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
server node03:8080 weight=1;
server node04:8080 weight=1;
}
upstream後面名字隨便起,然後裡面server可以加個權重,當然可接可不接。
check interval=3000 rise=2 fall=5 timeout=1000 type=http;這句是tengine對nginx優化出來的健康檢查,。
健康檢查結果通過配置location來在網頁裡檢視
location /status {
check_status;
}
2.配置location
我們配置完upstream後我們會配置location來使用upstream
location / {
proxy_pass http://tomcat;
}
以上兩步我們就配置好了反向代理。
第三步:安裝同步資料庫memcached
要做到負載均衡必須要解決的一個問題就是session的共享,這裡最好的解決辦法就是用快取資料庫。快取資料庫很多,我們這裡選擇memcached,memcached比較簡單。它是以鍵值對的方式儲存的,沒有變的概念,只能存字串。
安裝memcached很簡單,用命令yum -y install memcached就可以安裝成功。
第四步:配置memcached
1.我們要想tomcat自動獲memcached存的sesion必須修改tomcat的配置檔案,用命令vi conf/context.xml編輯context.xml檔案,在檔案里加上以下程式碼:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.126.132:11211"
sticky="false"
lockingMode="auto"
sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
2.上網下載tomcat8.0-memcache-session.rar,解壓之後打jar包拷貝到tomcat安裝目錄下的lib目錄下。重啟tomcat就可以了。