做nginx +tomcat(n) +redirs session共享 负载均衡之前
1. 准备材料
- nginx(可点击下载)
- apache-tomcat多个(可点击下载)
- redis(可点击下载)
- war包(可以使用的项目)
以下是我的准备材料
2. 在tomcat部署项目,将打包好的war包部署到 webapp下
注意:启动tomcat后,会自动编译项目,我们把项目名称改为ROOT(默认根路径访问 不需要加项目名称了)必须修改,不然之后nginx配置匹配不到
紧接着我们将多台tomcat的端口修改以下!
路径:tomcat-1\conf\service.xml配置文件
一共需要更改三处:
第一处:
第二处:
第三处:
好了以后测试以下,启动多个tomcat测试是否可以访问
3. 配置redis
- 启动
redis-server.exe redis.conf
- 测试
redis-cli.exe -h 127.0.0.1 -p 6379
set key value
get key
- 多个 tomcat融入redis实现session共享。将下图三个jar包 copy 至 tomcat lib 下
然后再tomcat/conf/content.xml文件目录下添加以下代码:
<!-- tomcat-redis- session共享配置 -->
<!-- host:配置ip地址-->
<!-- port:配置端口号-->
<!-- database:默认第几个数据库-->
<!-- maxInactiveInterval:最大超时时间-->
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60" />
重行启动tomcat 如果报错,将中文注释删除应该就好了
4. 配置nginx
- 启动
start nginx.exe //启动
nginx -s stop //停止 (暂时不用)
- 配置轮训策略,需要在nginx\conf\nginx.conf文件中配置访问(tomcat 端口),在下图位置加入以下两段代码
upstream sshmanager {
server localhost:8085;
server localhost:8086;
server localhost:8087;
ip_hash;
}
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;