Nginx+Tomcat部署负载均衡

一、为什么用nginx和tomcat搭建群集?

  • 传统模型下,一个项目部署在一台tomcat上,这个时候,假如 tomcat 因为服务器资源不够,突然挂机了,出现单点故障,那么整个项目就无法使用,给客户造成的损失可想而知!!

  • Tomcat 不能单独应用于生产环境下,我们需要一套更可靠的解决方案来完善web站点架构。

  • Nginx 能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。

  • 目前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理以及负载均衡器,来提升整个站点的负载并发能力。

  • 我们可以部署 Nginx + tomcat 服务群集,就可以避免单台服务如果挂机,依然能保证服务正常使用。

  • 当我们把项目 war 包部署到三台服务器上时,即使服务器A、服务器B都挂了,依然能够通过服务器C访问项目资源!

二、部署环境

服务类型IP地址软件包
Nginx服务器10.0.0.10nginx-1.12.2.tar.gz
Tomcat01服务器10.0.0.20jdk-8u91-linux-x64.tar.gz 、apache-tomcat-8.5.16.tar.gz
Tomcat02服务器10.0.0.30jdk-8u91-linux-x64.tar.gz 、apache-tomcat-8.5.16.tar.gz
客户端10.0.0.60
  • 部署拓扑图:
    在这里插入图片描述

三、部署过程

3.1、Tomcat1 部署

#关闭防火墙
[root@server2 ~]# systemctl stop firewalld.service 
[root@server2 ~]# setenforce 0

#解压jdk环境包
[root@server2 ~]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/

#添加JAVA环境变量
[root@server2 ~]# vim /etc/profile
#在末尾处添加以下代码
export JAVA_HOME=/usr/local/jdk1.8.0_91   
export JRE_HOME=${JAVA_HOME}/jre            
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib   
export PATH=${JAVA_HOME}/bin:$PATH 

[root@server2 ~]# source /etc/profile    #加载使环境变量生效

#解压tomcat软件包
[root@server2 ~]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/

#把文件夹改名,方便使用
[root@server2 ~]# cd /usr/local/
[root@server2 local]# mv apache-tomcat-8.5.16/ tomcat

#创建软链接,方便服务管理
[root@server2 ~]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@server2 ~]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

#在tomcat1中创建web站点
[root@server2 local]# mkdir -p /web/webapp1
[root@server2 local]# cd /web/webapp1/
[root@server2 webapp1]# vim index.jsp
#写入以下内容
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
    <head>
    <title>JSP test1 page</title>
    </head>
    <body>
    <% out.println("Welcome TEST01 Web");%>
    </body>
</html>

#修改Tomcat的server.xml文件,定义一个虚拟主机,并且将网站文件路径指向已经建立
的/web/webapp1,在host段增加context段
vim /usr/local/tomcat/conf/server.xml

<Host nane="localhost" appBase="webapps"
              unpackWARs="true" autoDeploy="true" >
#添加以下行
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
[root@server2 ~]# startup.sh      #启动

3.2、Tomcat2 部署

#关闭防火墙
[root@server3 ~]# systemctl stop firewalld.service 
[root@server3 ~]# setenforce 0
0

#解压jdk环境包
[root@server3 ~]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/

#添加JAVA环境变量
[root@server3 ~]# vim /etc/profile
#在末尾处添加以下代码
export JAVA_HOME=/usr/local/jdk1.8.0_91   
export JRE_HOME=${JAVA_HOME}/jre            
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib   
export PATH=${JAVA_HOME}/bin:$PATH 

[root@server3 ~]# source /etc/profile    #加载使环境变量生效

#解压tomcat软件包
[root@server3 ~]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/

#把文件夹改名,方便使用
[root@server3 ~]# cd /usr/local/
[root@server3 local]# mv apache-tomcat-8.5.16/ tomcat

#创建软链接,方便服务管理
[root@server3 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@server3 local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

#在tomcat2中创建web站点,此处站点路径要与tomcat1一致。
[root@server3 local]# mkdir -p /web/webapp1
[root@server3 local]# cd /web/webapp1

#网页内容要设置不同的,便于验证部署群集的结果
[root@server3 webapp1]# vim index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
    <head>
    <title>JSP test2 page</title>
    </head>
    <body>
    <% out.println("Welcome TEST02 Web");%>
    </body>
</html>

#修改Tomcat的server.xml文件,定义一个虚拟主机,并且将网站文件路径指向已经建立
的/web/webapp1,在host段增加context段
[root@server3 webapp1]# vim /usr/local/tomcat/conf/server.xml

<Host nane="localhost" appBase="webapps"
              unpackWARs="true" autoDeploy="true" >
#添加以下行
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
[root@server3 ~]# startup.sh     #启动

3.3、nginx服务器部署

#关闭防火墙
[root@server1 ~]# systemctl stop firewalld.service 
[root@server1 ~]# setenforce 0


#安装依赖包
[root@server1 ~]# yum -y install gcc gcc-c++ pcre-devel make zlib-devel

#解压安装包到/opt/目录下。
[root@server1 ~]# tar zxvf nginx-1.12.2.tar.gz -C /opt/

#创建nginx用户
[root@server1 ~]# useradd -M -s /sbin/nologin nginx

#配置编译安装
[root@server1 ~]# cd /opt/nginx-1.12.2/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module

make && make install

#创建软链接,优化服务
[root@server1 nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

#修改配置文件
vim /usr/local/nginx/conf/nginx.conf
   #keepalive_timeout 0;
     keepalive_timeout 65;
   #gzip on;
   #使用upstream函数,配置tomcat服务器地址池
   upstream tomcatserver {
         server 10.0.0.20:8080 weight=1;
         server 10.0.0.30:8080 weight=1;
     }
server{
      listen 80;

location / {
          root html;
          index index.html index.htm;
          proxy_pass http://tomcatserver;
          #反向代理到设置的tomcat服务器地址池里
}
[root@server1 ~]# nginx -t

#检测是否成功//

[root@server1 ~]# nginx   #启动
[root@server1 ~]# netstat -anpt | grep 80

3.4、验证

在浏览器输入nginx的IP地址,观察是否将请求代理到tomcat服务器,刷新页面可以哦看到tomcat服务器通过nginx调度实现轮流工作。在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值