chapter4 tomcat集群与nginx负载均衡

chapter4 tomcat集群与nginx负载均衡
4.1 tomcat集群
问题1:tomcat集群能带来什么优势?

性能up,并发up,高可用,横向拓展...

问题2:tomcat集群会带来什么问题?

session如何共享,定时任务并发,分布式锁,分布式事务...

4.2 tomcat单机部署多应用
假设现在一台机器上安装了两个tomcat,tomcat1和tomcat2。

4.2.1 linux/mac
(1)环境变量文件

修改/etc/profile文件,增加如何配置:

export CATALINA_BASE=/user/imooc/tocmat1
export CATALINA_HOME=/user/imooc/tocmat1
export TOMCAT_HOME=/user/imooc/tocmat1
 
export CATALINA_2_BASE=/user/imooc/tocmat2
export CATALINA_2_HOME=/user/imooc/tocmat2
export TOMCAT_2_HOME=/user/imooc/tocmat2

执行命令source /etc/profile是修改生效。

执行命令echo $CATALINA_HOME等查看生效后的值是否正确。

(2)tomcat2的catalina.sh文件

在#OS的后行增加:

export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME

(3)tomcat2的server.xml

需要修改端口,避免和tomcat1冲突。

8005->9005,8080->9080,8009->9009

(4)依次启动两个tomcat

4.2.2 windows
(1)环境变量

和上面类似,使用windows的方式加上6个环境变量。

(2)tomcat2的catalina.bat和startup.bat

注意,linux下只需要修改catalina.sh,windows还需要修改startup文件。

将文件中的CATALINA_HOME替换为CATALINA_2_HOME,CATALINA_BASE替换为CATALINA_2_BASE。

(3)tomcat2的server.xml

同上。

(4)依次启动两个tomcat


4.3 tomcat多机部署多应用
(1)仍然是单机多实例模式

即虽然是多机的,但每台机器仍然部署了多个tomcat,参看上节。

(2)单机单部署模式

正常部署即可,端口和配置文件互不影响。

注意,不同机器上的tomcat要保证网络畅通,且与nginx也是互通。

4.4 nginx负载均衡
4.4.1 策略
(1)轮询

简单,但是没考虑服务器各自的能力。

upstream www.happymmall.com{
    server www.happymmall:8080;
    server www.happymmall:9080;
}


(2)权重

用的较多。

upstream www.happymmall.com{
    server www.happymmall:8080 weight=10;
    server www.happymmall:9080 weight=18;
}


(3)ip hash

同一用户可访问同一台server,但是hash的结果不一定平均,并没有考虑到服务器的利用率和各自的能力。

upstream www.happymmall.com{
        ip.hash;
        server www.happymmall:8080;
        server www.happymmall:9080;
}

(4)url hash

同一个url会访问同一台server,但是hash的结果不一定平均,并没有考虑到某些被频繁访问的url。

upstream www.happymmall.com{
    server www.happymmall:8080;
    server www.happymmall:9080;
    hash $request_url;
}


(5)fair

server响应时间短的先分配。

upstream www.happymmall.com{
    server www.happymmall:8080;
    server www.happymmall:9080;
    fair;
}

4.4.2 其他配置
down:不工作

backup:其他服务器全down才工作。

4.5 tomcat+nginx集群搭建
4.5.1 tomcat准备
(1)区分tomcat1和tomcat2

修改tomcat的图标(webapp/ROOT/tomcat.png),以方便区分最终访问的是哪台服务器。

(2)启动tomcat

按照前面所说的,启动好两台tomcat。

4.5.2 域名准备
(1)hosts文件

因为没有申请域名,所以修改hosts文件。

127.0.0.1 www.imooc.com


(2)验证

ping www.imooc.com,没有问题。

分别访问www.imooc.com:8080和www.imooc.com:9080,没有问题。

4.5.3 nginx准备
(1)启动nginx

linux下nginx的默认安装路径为/usr/local/nginx。执行sbin目录下的nginx.sh。

windows下,执行bin目录下的nginx.exe,注意用命令行启动且不关闭窗口,如果使用双击exe的方式启动容易造成启动多个而不自知。

(2)验证

访问http:www.imooc.com或者http:localhost均可,出现nginx首页即可。默认是80端口,可以不输入。

(3)配置文件

在nginx.conf中增加:

include vhost/*.conf
创建vhost/www.imooc.com.conf,以后自定义的配置都放在vhost目录下。

访问imooc.com/时,会被转发到http://www.imooc.com,然后找到上方的upstream,会被转发到这两个server上。

upstream www.imooc.com{
    server www.imooc:8080;
    server www.imooc:9080;
}
 
server{
    //其余略
    server_name imooc.com
    access_log c:/access.log combind;
    location /{
        proxy_pass http://www.imooc.com;
        ...
    }
}


(4)重新加载

修改了配置文件后,不需要重启nginx,重新加载即可。

linux:sudo ./nginx -s reload

window:原窗口不关闭,新开一个窗口,执行nginx.exe -s reload

(5)验证负载均衡

访问imooc.com,多次刷新,发现图片有所变化,表明是不同的tomcat。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值