windows server 2012 nginx+2tomcat7集群+memcached处理session共享部署项目
1.下载nginx-0.8.55,解压到当前文件夹以后启动nginx.exe,可以看到welcom nginx
nginx.conf
#Nginx所用用户和组,window下不指定
#user niumd niumd;
#工作的子进程数量(通常等于CPU数量或者2倍于CPU)
worker_processes 2;
#错误日志存放路径
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info;
events {
#使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指
定。
#use epoll;
#允许最大连接数
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 off;
access_log logs/access.log;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#keepalive_timeout 75 20;
include gzip.conf;
upstream localhost{
#根据ip计算将请求分配各那个后端to mcat,许多人误认为
可以解决session问题,其实并不能。
#同一机器在多网情况下,路由切换,ip可能不同
server 172.16.133.22:8080 weight=1;
server 172.16.133.23:8080 weight=1;
#session共享
#ip_hash;
}
server {
listen 80;
server_name localhost;
location / {
#proxy_connect_timeout 3;
# proxy_send_timeout 30;
#proxy_read_timeout 30;
#proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
#定义服务器的默认网站根目录位置
root D:\apache-tomcat-7.0.67\webapps\HotV;
#定义首页索引文件的名称。定义多个用空格分隔
index index.jsp jsp/login.jsp;
proxy_pass http://localhost;
}
}
}
3.在其他两台服务器里边配置jdk的环境,将tomcat和项目部署到另外两台电脑上边,并且能正常访问项目。
4.项目中涉及到session共享问题,可以#ip_hash;把conf里边的这一行的井号去掉,我做的是添加memcached,首先先安装memcached,安装完成以后启动服务,可以在进程里边查看当前服务
下边的context.xml文件添加如下内容(memcached安装到那个服务器下边就配置哪个ip)
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:ip地址:11211"
requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$"
sessionBackupAsync="false"
sessionBackupTimeout="100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTran
scoderFactory"
copyCollectionsForSerialization="false" />