分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

Web应用优化之nginx+tomcat集群配置+redis管理session

发布时间:2023-09-06 02:30责任编辑:顾先生关键词:Web配置nginxredistomcat
1.nginx的安装

从官网下载一个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

1.在tomcat的lib中引入:
    tomcat-redis-session-manage-tomcat7.jar
    jedis-2.8.1.jar
    commons-pool2-2.2.jar
    
2.在tomcat的context.xml中添加:
    <!--  配置session由redis管理,并指定redis的ip和port -->
    <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve"/>
    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
        host = "192.168.0.203"  #redis服务器ip
        port="7000"  
        database="0"/>#redis的库

Web应用优化之nginx+tomcat集群配置+redis管理session

原文地址:https://www.cnblogs.com/lhc-hhh/p/10284819.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved