nginx搭建tomcat集群
首先说一下什么是tomcat集群:
利用nginx将请求进行一个分流,将请求分配给不同的tomcat去处理,减少每个tomcat的负载量,提高服务器的响应速度.
需要用到的工具:
nginx-1.13.10 apache-tomcat-7.0.81
具体实现步骤:
1,下载nginx:目录如下:
2,解压两个tomcat,分别命名为apache-tomcat-7.0.81-1和apache-tomcat-7.0.81-2.
3,修改两个tomcat的启动端口,分别为8080和8081.(注:在conf/server.xml中修改端口)
4,修改两个tomcat默认的index.jsp页面,用于区分不同的tomcat.
下图是index.jsp中的代码(index.jsp在webapp/ROOT/路径下),分别将tomcat的index.jsp的页面中的Home改为Home-1和Home-2
5同时启动两个tomcat,访问测试,如下图所示:
6,配置nginx,打开nginx-1.13.10/conf/nginx.conf.
进行如下配置:
核心配置:
7,dos命令启动nginx.
8,测试:访问http://localhost:9090
第一次看到的页面:如下图
刷新页面.第二次看到的页面:如下图
到这里,我们就已经使用nginx实现了负载均衡的tomcat集群
下面再补充一点nginx的负载均衡策略:
1,轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能够自动剔除.
upstream backserver {
server 192.168.0.22;
server 192.168.0.23;
}
2,指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况.
upstream backserver {
server 192.168.0.22 weight=10;
server 192.168.0.23 weight=10;
}
3,ip绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题.
upstream backserver {
ip_hash;
server 192.168.0.22:88;
server 192.168.0.23:80;
}
4,fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配.
upstream backserver {
server server1;
server server2;
fair;
}
5,url_hash (第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效
upstream backserver {
server squid1:3128;
server squid1:3128;
hash $request_url;
hash_method crc32;
}