Web应用优化之nginx+tomcat集群配置+redis管理session
Posted DaDa~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web应用优化之nginx+tomcat集群配置+redis管理session相关的知识,希望对你有一定的参考价值。
从官网下载一个nginx事务tar.gz版本,centos系统,安装好jdk
第一步解压
第二步:解压完成进入解压目录,执行./configure命令
需要安装gcc编译和pcre库,zlib库
yum -y install gcc
yum install pcre-devel
yum install zlib-devel
./configure完成后执行make install即可安装成功
2.集群配置流程
一、克隆2台CentOS虚拟机,并安装jdk+tomcat
二、安装1台CentOS虚拟机,并安装nginx(过程参见nginx安装流程.png) nginx的默认安装位置:/usr/local/nginx
1 启动nginx:
./nginx 使用默认配置文件(/usr/local/nginx/conf/nginx.conf)
或
./nginx -c /x/xx/xxx/nginx.conf
2 测试
http://ip:80 或 http://ip (nginx的默认端口80)
3 关闭
./nginx -s stop
4 重启
./nginx -s reload
5 查看线程
ps -ef | grep nginx (查询主进程号)
kill -9 主进程号 (强制关闭)
三、配置集群环境 1 修改nginx的配置文件(默认位置:/usr/local/nginx/conf/nginx.conf)
1> 配置tomcat集群节点 在http节点内部,server节点外部 upstream tomcat-servers { server 192.168.1.103:8080; server 192.168.1.104:8080; }
2> 配置反向代理 在server节点内部:
1 修改nginx的配置文件(默认位置:/usr/local/nginx/conf/nginx.conf)
1> 配置tomcat集群节点
在http节点内部,server节点外部
upstream tomcat-servers {
server 192.168.1.103:8080;
server 192.168.1.104:8080;
}
2> 配置反向代理
在server节点内部:
location / {
proxy_pass http://tomcat-servers;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_next_upstream http_502 http_504 error timeout invalid_header;
}
2 启动所有tomcat节点,启动nginx,测试
1 默认:轮循
upstream tomcat-servers {
server 192.168.1.103:8080;
server 192.168.1.104:8080;
}
2 iphash:基于ip
upstream tomcat-servers {
ip_hash;
server 192.168.1.103:8080;
server 192.168.1.104:8080;
}
3 weight:权重轮询
upstream tomcat-servers {
server 192.168.1.103:8080 weight=1;
server 192.168.1.104:8080 weight=2;
}
ip_hash方式,一定程度上解决了负载均衡情况下session不一致,此时访问session会发生黏着,基于Tomcat ip的黏着状态;但如果此ip的Tomcat发生宕机,则负载均衡继续进行,seever切换后导致session会话再次丢失
session复制 造成空间浪费,也不合适
redis提供session共享 √
思路:redis的key是sessionid 值为session序列化的String
准备:jar包:commons-pool2-2.2.jar, jedis 2.8.jar,tomcat-redis-session-manage-tomcat7.jar
以上是关于Web应用优化之nginx+tomcat集群配置+redis管理session的主要内容,如果未能解决你的问题,请参考以下文章