Nginx+Tomcat+Memecached实现session共享配置
这段时间一直在搞项目部署,以前从来没做过,感觉很吃力,下面这个是自己配的Ubuntu下Nginx+Tomcat+Memecached实现session共享配置参考文档,欢迎大家拍砖,不知为啥session冒失还是不能实现共享,求告诉指教Memecached 在Ubuntu下安装配置及memecached常用命令2、测试连接telnet 127.0.0.1 112113、基本命令您将使用五种基本 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这个开源项目
http://code.google.com/p/memcached-session-manager/ ,下面简称msm。
如何安装nginx、memcached、tomcat这些就不多说了(上面已经说过了)。
先说明一下测试环境:
tomcat1、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.
这里的memcachedNodes是填写memcached节点,多个节点时可以以空隔分开,如:
n1:localhost:11211 n2:localhost:11212
sessionBackupTimeout的单位为分钟
E:/java_codes/TestSession/WebContent 替换成你的WEB目录
修改后重启两个TOMCAT即可,这个时候已经解决SESSION的共享问题.
二,配置nginx实现负载均衡
我的nginx.conf
Xml代码
usernginx nginx;
worker_processes8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
error_log /log/nginx/error.log crit;
pid /var/run/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections65535;
}
http {
include mime.types;
default_typeapplication/octet-stream;
log_formataccess'$remote_addr - $remote_user [$time_local] "$request"' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
access_log/log/nginx/access.logaccess;
sendfile on;
tcp_nopush on;
keepalive_timeout30;
tcp_nodelay on;
gzipoff;
server_tokens off;
upstream 10.0.2.15 {
server 10.0.2.15:8080 ;
server 10.0.2.15:8081 ;
}
server {
server_name10.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;
}
}
页:
[1]