0、需要的安装包
apache-tomcat-7.0.90 下载地址:http://tomcat.apache.org/
nginx-1.15.1 下载地址:http://nginx.org/
Redis 2.6.12 下载地址:http://www.redis.cn/
1、配置tomcat
我这里就用两个tomcat做实验,所以将第二个tomcat中的端口分别修改一下。具体操作:打开conf/server.xml文件,在第22行将8005修改成8006,在第71行将8080修改成8081,在93行8009修改成8010。可能行数会有差别,不要与第一个tomcat端口冲突就行。
然后分别在tomcat的webapp目录下添加一个ROOT文件夹,因为tomcat的默认访问的就是该文件下的资源文件。然后在ROOT文件夹中创建一个index.jsp,内容随便写一点就行。
给index.jsp添加点内容
tomcat2也是一样的操作,然后去分别启动tomcat服务器。网页中访问的效果如下:
2、配置nginx实现反向代理
解压nginx,找到nginx核心配置文件(config/nginx.config),修改其中的配置,在location /里面添加proxy_pass http://127.0.0.1:8080
修改后:
location / {
proxy_pass http://127.0.0.1:8080;
#root html;
#index index.html index.htm;
}
意思就是让nginx将你的请求转发给http://127.0.0.1:8080,也就是你刚才配置的tomcat1,然后开启nginx,双击nginx.exe文件即可,默认监听80端口,可以在任务管理器中看到两个nginx的进程,就代表nginx运行成功!!!
然后在浏览器中访问127.0.0.1即可
这个就是反向代理,通过nginx将你的请求转发到相应的服务器。(如果tomcat2也要配置的话,需要再再添加一个server,用的不多,下面直接配置集群负载均衡)
3、配置nginx实现负载均衡
我将默认注释的内容删除掉了,然后配置如下:
然后需要重启nginx,命令nginx -s reload,需要再nginx.exe目录下执行该命令。然后再浏览器中访问http://127.0.0.1就会发现,一次是tomcat1,第二次又是tomcat2反复。实现了负载均衡的效果。
可是细心的小伙伴会发现,每一次response的headers的cookie中都会返回一个JSESSIONID,并且每一次都是不一样的。下面继续帮你解决。
4、redis实现session共享
前提:开启redis缓存,开启成功界面(我这个是windows下的redis,直接解压就可以用):
需要用到的jar包有:
commons-pool2-2.2.jar
jedis-2.5.2.jar
tomcat-redis-session-manage-tomcat7.jar (这个jar是支持tomcat7的,所以tomcat要用tomcat7)
这些jar包下载我分享了https://download.csdn.net/download/qq_32587949/10557002
将这三个jar包分别放入tomcat1和tomcat2的lib文件夹下,然后打开config/context.xml,分别添加如下配置
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"
maxInactiveInterval="60" />
然后重启tomcat1和tomcat2即可,然后再浏览器中访问http://127.0.0.1发现JSESSIONID只再第一次访问的时候返回,后面都将使用该JSESSIONID。成功实现了session共享的问题。
如果是真实的项目,分别放入tomcat中,就可以了。