Nginx+Tomcat+Memecached实现session共享配置
2013-02-06 15:35
751 查看
这段时间一直在搞项目部署,以前从来没做过,感觉很吃力,下面这个是自己配的Ubuntu下Nginx+Tomcat+Memecached实现session共享配置参考文档,欢迎大家拍砖,不知为啥session冒失还是不能实现共享,求告诉指教
Memecached 在Ubuntu下安装配置及memecached常用命令
[align=left]2、测试连接[/align]
[align=left]telnet 127.0.0.1 11211[/align]
[align=left]3、基本命令[/align]
[align=left]您将使用五种基本 memcached 命令执行最简单的操作。这些命令和操作包括:[/align]
[align=left](1) 设置 set key 0 0 5 àkey就是键,第一个0表示value,第二个0表示生命周期,第三个数字5表示value的长度[/align]
[align=left](2) delete key (3) get key (4) flush all 清楚所有缓存[/align]
[align=left] [/align]
[align=left] [/align]
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.
<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代码
user nginx nginx;
worker_processes 8;
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_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"';
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 ;
}
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;
}
}
Memecached 在Ubuntu下安装配置及memecached常用命令
[align=left]2、测试连接[/align]
[align=left]telnet 127.0.0.1 11211[/align]
[align=left]3、基本命令[/align]
[align=left]您将使用五种基本 memcached 命令执行最简单的操作。这些命令和操作包括:[/align]
[align=left](1) 设置 set key 0 0 5 àkey就是键,第一个0表示value,第二个0表示生命周期,第三个数字5表示value的长度[/align]
[align=left](2) delete key (3) get key (4) flush all 清楚所有缓存[/align]
[align=left] [/align]
[align=left] [/align]
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.
<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代码
user nginx nginx;
worker_processes 8;
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_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"';
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 ;
}
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;
}
}
相关文章推荐
- Nginx+Tomcat+Memcached 集群Session共享[memcached服务安装、tomcat使用memcache存储session、nginx安装配置实现tomcat负载均衡]
- Nginx+Tomcat+Redis实现负载均衡与Session共享之三 — Gradle下载配置
- me_nginx+tomcat+memcached实现session共享配置过程
- Nginx反向代理Tomcat实现现负载均衡(高可用)以及利用redis+Session同步会话共享配置详解
- 详解之:linux下tomcat、nginx的负载均衡及memcached对session共享的实现配置详细总结
- 详解之:linux下tomcat、nginx的负载均衡及memcached对session共享的实现配置详细总结
- nginx+tomcat+memcached 实现负载均衡 。动静分离。session共享
- tomcat+nginx+redis实现均衡负载、session共享
- Nginx+Tomcat+Memcached实现tomcat集群和session共享
- 详解之:linux下tomcat、nginx的负载均衡及memcached对session共享的实现
- Nginx+Tomcat+Redis实现负载均衡与Session共享之一 — JDK下载安装
- 使用Nginx实现多个tomcat的负载运行及Session共享的教程
- Nginx和Tomcat负载均衡实现session共享
- linux下nginx+tomcat+msm+memcached实现session共享(测试)
- tomcat+nginx+redis实现均衡负载、session共享(二)
- Nginx+Tomcat+Redis实现应用服务器集群负载均衡和Session共享
- tomcat+nginx+redis实现均衡负载、session共享(一)
- nginx+tomcat+memcached实现负载均衡与session共享
- Windows+Nginx+Tomcat搭建负载均衡和集群环境同时实现session共享(一)
- Linux高可用(HA)之Nginx+Redis+Tomcat集群实现session保持和共享