Linux安装(Tomcat+Nginx+Redis)负载均衡+session共享

Linux下进行配置Tomcat+Nginx+Redis:

1、可以使部署的web项目能够承载较大的访问压力。

2、使用Nginx实现负载均衡,并使用Redis实现session共享。

画的拓扑图:

开始进行Nginx+Tomcat+Redis (负载均衡+session共享)完整配置

配置说明:
操作系统:centos7 64位
反向代理:nginx-1.6.3
nginx-1.6.3.tar.gz
Tomcat:apache-tomcat-8.0.48
apache-tomcat-8.0.48.tar.gz
Redis:redis-3.2.3.tar.gz
tcl8.6.1-src.tar.gz
JDK:1.8
jdk-8u161-linux-x64.tar.gz

Tomcat复制两份:

目录:/home/elsa/devTools
apache-tomcat-8.0.48-->tomcat8080  A
apache-tomcat-8.0.48-->tomcat8081   B

--------------------

linux修改名:mv  apache-tomcat-8.0.48  tomcat8080

--------------------

Nginx和redis的安装目录:

/usr/local/

一、Tomcat配置

很重要:
Redis实现session共享时,需要的三个重要jar包:
tomcat-redis-session-manager-2.0.0.jar
commons-pool2-2.2.jar
jedis-2.5.2.jar
1、将所需要的jar包复制到$CATALINA_HOME/lib/下,即每个tomcat安装目录的lib目录下

2、每个Tomcat的context.xml添加session共享的配置:

----------------------------------------

<?xml version='1.0' encoding='utf-8'?>
<Context>  
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    
    <!-- tomcat-redis-session共享配置 -->  
    <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />  
    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"  
         host="localhost"   
         port="6379"
         password="123456"
         database="0"   
         maxInactiveInterval="60" />
</Context>
-------------------------------------------

备注:其中的password="123456"是redis的访问密码。

3、#cd /home/elsa/devTools/tomcat8081/conf
  #vi server.xml
  改以下三个端口为:8006,8081,8099

<Server port="8005" shutdown="SHUTDOWN">

<Connector port="8080" protocol="HTTP/1.1"

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

 

二、Nginx配置

前提】:前面安装了2个tomcat和1个nginx。

1、修改配置文件。

#cd /usr/local/nginx/conf 
#vi nginx.conf 
添加ngnix分配策略(权重策略)

    #gzip  on;
    

   #服务器的集群,myserver.com服务器的名称

    upstream myserver.com {            server 10.10.42.96:8080 weight=1;     

    # 服务器配置   weight是权重的意思,权重越大,分配的概率越大。  

        server 10.10.42.96:8081 weight=1;  
    }
   #upstream中的myserver.com 前面不能加:http://,  myserver.com 中proxy_pass里的:http://    不能省略

   #weight为访问权重,数值越高,访问的机会也越高

   
三、Redis配置

1、配置:永久密码,修改redis.conf配置文件

# If the master is password protected (using the "requirepass" configuration  

# requirepass foobared
requirepass 123456   指定密码123456

2、后端启动,修改redis.conf配置文件

 cd /usr/local/redis

 vi redis.conf

   找到daemonize no将其改为yes:

3、启动Redis

./bin/redis-server ./redis.conf

 

四、部署测试web项目

编写首页测试代码:index.jsp,放入每个tomcat安装目录webapps/ROOT下。

 

-------------------------------index.jsp-------

<%@ page language="java" %>
<html>
  <head><title>Tomcat8081</title></head>
  <body>
    <h1><font color="red">www.tomcat8081.com</font></h1>
    <table align="centre" border="1">
      <tr>
        <td>Session ID</td>
         <% session.setAttribute("tomcat8081.com","tomcat8081.com"); %>
        <td><%= session.getId() %></td>
      </tr>
      <tr>
        <td>Created on</td>
        <td><%= session.getCreationTime() %></td>
     </tr>
    </table>
  </body>
</html>

----------------------------------------

 

五、启动Nginx,2个tomcat,redis

启动Nginx:

 
#./nginx
启动tomcat

#cd  /home/elsa/devTools/tomcat8080/bin       另外一个目录:tomcat8081

#./startup.sh

启动redis

#cd /usr/local/redis
#./bin/redis-server ./redis.conf

 

验证神奇时刻开始了,打开浏览器访问:http://10.10.42.96/index.jsp  ,此时访问的是Nginx,它会随机分配到具体的tomcat上,

[虽然访问时不同的tomcat,但session一样,Redis让两个tomcat的session共享]->这就是负载均衡和session共享。撒花....

此时查看redis,可以看到该session:

[root@linuxprobe bin]# redis-cli

127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> keys *
1) "E85DF275DC640095F406660B095857E9"
2) "37CE2627B7457FD732FF8FDC2166259A"

 

 

 

备注:参考以下链接:

https://blog.csdn.net/qq_16216221/article/details/72599016

https://www.cnblogs.com/panwenbin-logs/p/8149772.html

https://blog.csdn.net/wang20110277/article/details/80555039

 


 


 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁宁可可

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值