Tomcat集群与Nginx负载均衡配置及所带来的问题(windows和linux)

3 篇文章 0 订阅
1 篇文章 0 订阅

本文目录

一. Tomcat集群方式(本文采用的是云服务器的形式,电脑配置优秀的小伙伴可以用虚拟机)

  1. 单机部署多应用集群
  2. 多机器部署集群

二. Nginx负载均衡的配置、策略以及对应的使用场景及特点

三. Nginx+Tomcat 实现负载均衡及集群并验证

四. 引出问题

  1. Tomcat集群带来了什么好处,为什么要集群?
  2. Tomcat集群又带来了什么样的问题,你有什么解决方案或思路吗?
  3. 请你说说Tomcat集群的实现原理

正文、

安装所需的tomcat和nginx.

windows:
tomcat:http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.40/bin/apache-tomcat-8.5.40-windows-x64.zip
nginx: http://nginx.org/download/nginx-1.15.12.zip

linux:
tomcat:http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.40/bin/apache-tomcat-8.5.40.tar.gz
nginx: yum install nginx

一. Tomcat集群(windows)

  1. 单机部署多应用集群
    1.1 准备两个tomcat
    在这里插入图片描述
    1.2 添加环境变量
    在这里插入图片描述

    1.3 修改tocmat端口 /conf/service.xml
    service port 节点端口修改 一个8005(默认) 一个 8055
    在这里插入图片描述
    在这里插入图片描述
    connector port 一个8080(默认) 一个8088 URIEncoding=“UTF-8”避免中文乱码
    在这里插入图片描述
    在这里插入图片描述
    还一个
    在这里插入图片描述
    在这里插入图片描述

    启动/bin/startup.bat后查看日志文件是这样的
    在这里插入图片描述
    发现它启动的不是我们新安装的tomcat8.5,这是因为tomcat文件默认配置的环境变量,没有更改,所以它指向了我以前安装的tomcat7.0,改一下配置文件就ok了。
    修改两个tomcat的 /bin/catalina.bat 和 startup.bat ,用文本编辑器打开,全文替换,CATALINA_HOME
    CATALINA_HOME_0 ,CATALINA_HOME_1
    在这里插入图片描述
    替换后,启动startup.bat,验证下tomcat是否部署成功。
    8080
    在这里插入图片描述
    8088 为了更好的区分我改了一个logo,\webapps\root\tomcat.png 替换即可
    在这里插入图片描述
    ok,到这tomcat的部署基本是没问题了,下面就要介入nginx实现负载均衡的效果。
    安装后的目录
    在这里插入图片描述
    修改nginx配置 /conf/nginx.conf
    在http节点下 添加以下配置

 #集群服务名称
   upstream tocmat{
   #默认策略 轮询
	server 127.0.0.1:8088;
	server 127.0.0.1:8080;
	#也可采取权重方式
	#server 127.0.0.1:8088 weight =1;
	#server 127.0.0.1:8080 weight =2;
	#8080端口是8088端口的两倍
    }

    server {
        listen  80; #监听的端口号
        server_name  localhost;
         location / { # url 过滤, / 不过滤
            proxy_pass  http://tocmat;  #请求转发的地址
        }
    }

ok,配置加好后,nginx根目录下 cmd命令行 执行 nginx -s reload
在这里插入图片描述
验证
如果出现刷新不变的情况下,关掉浏览器缓存即可。

效果如下(轮询策略 12 12 ),第一次。
在这里插入图片描述
第二次
在这里插入图片描述
ok,单机多应用集群部署已经完成。
二. Tomcat集群(linux)

  1. 多机器部署集群
    2.1 准备两台云服务器或者两个虚拟机;
    2.2 在linux上安装两个tomcat;

在这里插入图片描述

	#使用wget下载tomcat
	wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.40/bin/apache-tomcat-8.5.40.tar.gz
	#解压
	tar -zxvf apache-tomcat-8.5.40.tar.gz 
	#进入bin目录
	cd apache-tomcat-8.5.40/bin 
	#开启tomcat
	startup.sh

在这里插入图片描述
如果启动失败,检查一下是否是端口被占用,或者改下tomcat的启动端口

netstat -tunlp| grep 8080

在这里插入图片描述
这里已被占用,所以我们改下server.xml 重新配一下启动端口即可;

cd apache-tomcat-8.5.40/conf
vi servier.xml

改为8099端口
在这里插入图片描述

:wq #保存 

再次启动,之后进入/logs 查看一下日志,可以看到已经启动成功了;
在这里插入图片描述
如果发现启动之后,页面无法访问,或卡死,在关闭tomcat出现以下错误
在这里插入图片描述
这是因为防火墙或端口未开放的问题,输入下命面令即可解决;

 nc -lp 8099 &

过一会发现tomcat的页面成功打开了;

在这里插入图片描述
在这里插入图片描述
由于时间关系,我已经在第二台也部署了,方法和上面的是一样的,为了区分我换了个7.0版本的。相对单机来说,在多台机器上部署集群是容易的;接下来就开始使用nginx,实现负载均衡,任意一台机器上装一个nginx即可,这里我就在8099端口的那个机器上部署;
2.3 nginx实现负载均衡

#安装nginx
yum install nginx
#修改配置文件/etc/nginx/nginx.conf
vi /etc/nginx/nginx.conf
#添加以下配置

#注意 upstream 要和 proxy_pass相匹配,
#并且 upstream 有一定的命名规范:比如下划线_会引发400错误
  upstream linux.tomcat{
       server 47.101.168.240:8099;
       server 203.195.246.160:8080;
 	}  
    server {
         listen       80;
         server_name  47.101.168.240;
         
         location / {
             proxy_pass http://linux.tomcat;
            }
     }
#保存 :wq
#启动
nginx -s reload

有可能会出现权限不足的问题, bash: ./nginx: Permission denied

解决方案,修改nginx.conf 在第一行中,将 #user nobody; 改成 user root;
在这里插入图片描述
ok,重新启动 nginx -s reload
在浏览器测试,可以看到已经成功;
在这里插入图片描述
在这里插入图片描述

二. Nginx负载均衡的配置、策略以及对应的使用场景及特点

后面更新...
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值