天天看點

nginx+tomact+memcached(緩存)叢集

關于Nginx+tomcat+memcached(緩存)配置叢集負載均衡的下載下傳與安裝流程:

實作的整體步驟

一:安裝memcached。(memcached可以一個或者多個)

二:安裝兩個tomcat

三:配置msm。

四:安裝nginx,實作負載均衡。

以下是詳細步驟:

 第一步:安裝memcached

1.       下載下傳memcached服務端memcached-1.2.6-win32-bin.zip,位址:csdn

 第二步:安裝tomcat

1.       安裝兩個tomcat6,如果不在myEclipse等內建環境下,需要先安裝JDK.注意修改兩個

tomcat的端口号(server.xml中要修改三個端口:8005,8080,8009,把這三個改成沒有在用的端口就可以了)。

2.       啟動tomcat看是否能成功啟動。如果不能啟動成功,很可能就是端口沖突。

第三步:配置msm:

    1,先下載下傳msm及其依賴包

[url] http://memcached-session-manager.googlecode.com/files/memcached-session-manager-1.3.0.jar [/url]

[url] http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-jodatime-1.3.0.jar[/url]

[url] http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-cglib-1.3.0.jar [/url]

[url] http://spymemcached.googlecode.com/files/memcached-2.4.2.jar [/url]

[url] http://memcached-session-manager.googlecode.com/files/javolution-5.4.3.1.jar [/url]

2,将這5個包放到$TOMCAT_HOME/lib目錄下

3,修改$TOMCAT_HOME/conf/context.xml

Xml代碼

    <Context docBase="d:/apache-tomcat-6.0.30/webapps" path="" reloadable="true" >

    <Manager   className="de.javakaffee.web.msm.MemcachedBackupSessionManager"  

        memcachedNodes="n1:localhost:11211,n2:localhost:11211"                                           

        requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"  

        sessionBackupAsync="false"  

        sessionBackupTimeout="100"                             

transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"  

        copyCollectionsForSerialization="false"  

        />  

    </Context>  

          這裡的memcachedNodes是填寫memcached節點,多個節點時可以以空隔分開,如:

          n1:localhost:11211 n2:localhost:11211,

          memcached所在伺服器ip,11211是memcached預設端口号。

          sessionBackupTimeout的機關為分鐘

          d:/apache-tomcat-6.0.30/webapps替換成tomact的webaapps目錄

           修改後重新開機兩個TOMCAT即可,這個時候已經解決SESSION的共享問題.

第四步:安裝nginx,實作負載均衡

一、1.nginx:是一款輕量級的Web 伺服器/反向代理伺服器。其特點是占有記憶體少,并發能力強。

   作用:Nginx是通過将多個Web Server綁定到同一個IP位址下,以實作多個WebServer間的    

         負載均衡,降低單個Web Server的負荷,以提高整體的性能與穩定性。

    2.nginx的安裝與運作:

    cd nginx的安裝目錄

    cd nginx-1.4.6

    start nginx

     這樣,nginx 服務就啟動了(也可以直接輕按兩下打開)。打開任務管理器,檢視 nginx.exe 程序,有二個程序會顯示,占用系統資源,那是相當的少。

然後再打開浏覽器,輸入就可以看到nginx的歡迎頁面了

    nginx -s stop          // 停止nginx

    nginx -s reload       // 重新加載配置檔案

    nginx -s quit          // 退出nginx

    3.nginx.conf檔案需要修改的配置:

#user  nobody;

#啟動程序,通常設定成和cpu的數量相等

worker_processes  2;    

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {

#單個背景worker process程序的最大并發連結數

    worker_connections  2048;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

    #                  '$status $body_bytes_sent "$http_referer" '

    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;

    #tcp_nopush     on;

    #連接配接逾時時間

    #keepalive_timeout  0;

    keepalive_timeout  185;

    #gzip  on;

    #設定負載均衡的伺服器清單

     upstream mysvr {

    #weigth參數表示權值,權值越高被配置設定到的幾率越大

    server ip1:8080 weight=6;

    server ip2:8080 weight=5;

    }

    server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            proxy_pass http://mysvr;  

            index  index.html index.htm index.jsp;

            proxy_set_header   Host             $host;                    

            proxy_set_header   X-Real-IP        $remote_addr;

            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

            proxy_connect_timeout       1;       #nginx跟後端伺服器連接配接逾時時間(代理連接配接逾時) 

            proxy_read_timeout          30;       #後端伺服器資料回傳時間(代理發送逾時)       

            proxy_send_timeout          60;    #連接配接成功後,後端伺服器響應時間(代理接收逾時)

        }

    其餘配置不需要更改,詳見nginx.conf檔案。

注意:

  1. 如果nginx請求中斷,報upstream timed out,修改以下參數。

        proxy_read_timeout          30;       #後端伺服器資料回傳時間(代理發送逾時)       

         proxy_send_timeout          60;    #連接配接成功後,後端伺服器響應時間(代理接收逾時)  

  keepalive-timeout選項

  此選項說的是可使用戶端到伺服器端的連接配接持續有效,當出現對伺服器的後繼請求時,keepalive-timeout功能可避免建立或重建立立連接配接。

  2.   jar版本,系統版本window7   32位。

此片為本人親測通過,如有意見,或者錯誤,歡迎指出。

繼續閱讀