Nginx+Tomcat+Memecached實現session共享配置

這段時間一直在搞項目部署,之前歷來沒作過,感受很吃力,下面這個是本身配的Ubuntu下Nginx+Tomcat+Memecached實現session共享配置參考文檔,歡迎你們拍磚,不知爲啥session冒失仍是不能實現共享,求告訴指教css

 

Memecached 在Ubuntu 下安裝配置及memecached 經常使用命令
二、測試鏈接
telnet 127.0.0.1 11211
三、基本命令
您將使用五種基本 memcached 命令執行最簡單的操做。這些命令和操做包括:
(1)    設置 set key 0 0 5 àkey就是鍵,第一個0表示value,第二個0表示生命週期,第三個數字5表示value的長度
(2)    delete key (3) get key (4) flush all 清楚全部緩存
 
 
Ubuntu 下Nginx +Tomcat+memcached 實現Session 共享配置
要集羣tomcat主要是解決SESSION共享的問題,所以我利用memcached來保存session,多臺TOMCAT服務器便可共享SESSION了。
你能夠本身寫tomcat的擴展來保存SESSION到memcached。
這裏推薦使用memcached-session-manager這個開源項目
[url]http://code.google.com/p/memcached-session-manager/ [/url],下面簡稱msm。
如何安裝nginx、memcached、tomcat這些就很少說了(上面已經說過了)。
先說明一下測試環境:
tomcat一、nginx、memcached安裝在192.168.1.11
tomcat2安裝在192.168.1.101

下面分步實現基於nginx的tomcat負載均衡和集羣配置
一,tomcat集羣
    1,先下載msm及其依賴包
  http://memcached-session-manager.googlecode.com/files/memcached-session-manager-1.3.0.jar http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-jodatime-1.3.0.jar
http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-cglib-1.3.0.jar
http://spymemcached.googlecode.com/files/memcached-2.4.2.jar
http://memcached-session-manager.googlecode.com/files/javolution-5.4.3.1.jar
2,將這5個包放到TOMCAT_HOME/lib目錄下
3,修改TOMCAT_HOME/conf/server.xml
Xml代碼1.
<Context docBase="E:/java_codes/TestSession/WebContent" path="" reloadable="true" >   
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"   
 memcachedNodes="n1: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:11212
sessionBackupTimeout的單位爲分鐘
  E:/java_codes/TestSession/WebContent 替換成你的WEB目錄
   修改後重啓兩個TOMCAT便可,這個時候已經解決SESSION的共享問題.
二,配置nginx實現負載均衡
   個人nginx.conf
Xml代碼java

user  nginx nginx;node

worker_processes  8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;nginx

error_log /log/nginx/error.log crit;
pid /var/run/nginx.pid;
worker_rlimit_nofile 65535;web

events {
use epoll;
worker_connections  65535;
}緩存

http {
include       mime.types;
default_type  application/octet-stream;
log_format  access  '$remote_addr - $remote_user [$time_local] "$request"' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';tomcat

access_log  /log/nginx/access.log  access;
sendfile        on;
tcp_nopush     on;
keepalive_timeout  30;
tcp_nodelay on;
gzip  off;
server_tokens off;服務器

upstream 10.0.2.15 {
 server 10.0.2.15:8080 ;
 server 10.0.2.15:8081 ;session

}
server {
server_name  10.0.2.15;
proxy_headers_hash_max_size 51200;
    proxy_headers_hash_bucket_size 6400;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    location / {
     proxy_pass http://10.0.2.15;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
   access_log /log/nginx/10.0.2.15_access.log access;
}
}app

相關文章
相關標籤/搜索