nginx+tomact+memcached(緩存)集群

jopen 10年前發布 | 24K 次閱讀 memcached Web服務器 Nginx

關于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;</p>

#啟動進程,通常設置成和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 {</p>

#單個后臺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位。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!