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 指定密码1234562、后端启动,修改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