负载均衡nginx +tomcat(n) +redirs session共享

做nginx +tomcat(n) +redirs session共享 负载均衡之前

1. 准备材料

  1. nginx(可点击下载)
  2. apache-tomcat多个(可点击下载)
  3. redis(可点击下载)
  4. war包(可以使用的项目)

以下是我的准备材料

负载均衡nginx +tomcat(n) +redirs session共享_第1张图片

2. 在tomcat部署项目,将打包好的war包部署到 webapp下

注意:启动tomcat后,会自动编译项目,我们把项目名称改为ROOT(默认根路径访问 不需要加项目名称了)必须修改,不然之后nginx配置匹配不到

负载均衡nginx +tomcat(n) +redirs session共享_第2张图片

紧接着我们将多台tomcat的端口修改以下!

路径:tomcat-1\conf\service.xml配置文件

一共需要更改三处:

第一处:
在这里插入图片描述
第二处:
在这里插入图片描述
第三处:
在这里插入图片描述

好了以后测试以下,启动多个tomcat测试是否可以访问

3. 配置redis

  1. 启动
redis-server.exe redis.conf
  1. 测试
redis-cli.exe -h 127.0.0.1 -p 6379
set key value
get key
  1. 多个 tomcat融入redis实现session共享。将下图三个jar包 copy 至 tomcat lib
    负载均衡nginx +tomcat(n) +redirs session共享_第3张图片
然后再tomcat/conf/content.xml文件目录下添加以下代码:







负载均衡nginx +tomcat(n) +redirs session共享_第4张图片

重行启动tomcat 如果报错,将中文注释删除应该就好了

4. 配置nginx

  1. 启动
start nginx.exe //启动
nginx -s stop   //停止 (暂时不用)
  1. 配置轮训策略,需要在nginx\conf\nginx.conf文件中配置访问(tomcat 端口),在下图位置加入以下两段代码
upstream sshmanager {
    server localhost:8085;
    server localhost:8086;
    server localhost:8087;
    ip_hash;
}

负载均衡nginx +tomcat(n) +redirs session共享_第5张图片

proxy_pass http://sshmanager;
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_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;

负载均衡nginx +tomcat(n) +redirs session共享_第6张图片

注意location不能有两个

负载均衡nginx +tomcat(n) +redirs session共享_第7张图片

这样一个简单的负载均衡就完成了,这里我们使用的轮训策略是ip_hash,这里还给大家总结了几个其他的轮训策略,这篇博客很长,但是步骤不是很多,希望对你有所帮助!!!

你可能感兴趣的:(Nginx服务器)