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


 


 

发布了104 篇原创文章 · 获赞 5 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/fen_fen/article/details/100769998