伺服器叢集搭建

一個好的伺服器叢集必須要做到高併發和負載均衡,伺服器叢集包括三部分組成:前端伺服器,後天伺服器,同步資料庫。前端伺服器最長用的是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就可以了。