学习Nginx和Tomcat负载均衡一篇就够了!

1:什么是Nginx与Tomcat负载均衡

传统模型下,一个项目部署在Tomcat。若遇到访问量突增,Tomcat资源不够,不能提供正常的服务,造成的损失可想而知。
传统的服务器主从结构因为在横向扩展能力上的局限性,现已不再采用。目前推荐的的集群部署均采用Nginx做为前端服务器+负载均衡器的方式。

二:项目部署环境

服务器ip
Nginx192.168.158.10
tomcat1192.168.158.20
tomcat192.168.158.30

三、部署过程

3.1、Tomcat1 部署

//关闭防火墙
systemctl stop firewalld
setenforce 0

//解压jdk环境包
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/

//添加JAVA环境变量
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 

source /etc/profile    //加载使环境变量生效

//解压tomcat软件包
tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/

//把文件夹改名,方便使用
cd /usr/local/
mv apache-tomcat-8.5.16 tomcat

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

//在tomcat1中创建web站点
cd /usr/local
mkdir -p /web/webapp1
cd /web/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>
shutdown.sh
startup.sh

3.2、Tomcat2 部署

//关闭防火墙
systemctl stop firewalld
setenforce 0

//解压jdk环境包
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/

//添加JAVA环境变量
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 

source /etc/profile    //加载使环境变量生效

//解压tomcat软件包
tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/

//把文件夹改名,方便使用
cd /usr/local/
mv apache-tomcat-8.5.16 tomcat

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

//在tomcat2中创建web站点,此处站点路径要与tomcat1一致。
mkdir -p /web/webapp1
cd /web/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段
vim /usr/local/tomcat/conf/server.xml

<Host nane="localhost" appBase="webapps"
              unpackWARs="true" autoDeploy="true" >
//添加以下行
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>

3.3、Nginx服务器部署

//关闭防火墙
systemctl stop firewalld
setenforce 0

//安装依赖包
yum -y install gcc gcc-c++ make pcre-devel zlib-devel 

//解压安装包到/opt/目录下。
tar zxvf Nginx-1.12.2.tar.gz -C /opt/

//创建Nginx用户
useradd -M -s /sbin/nologin Nginx

//配置编译安装
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

//创建软链接,优化服务
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 192.168.158.20:8080 weight=1;
         server 192.168.158.30:8080 weight=1;
     }
server{
      listen 80;

location / {
          root html;
          index index.html index.htm;
          proxy_pass http://tomcatserver;
          #反向代理到设置的tomcat服务器地址池里
}
Nginx -t
//检测是否成功//

Nginx  //启动
netstat -natp | grep 80

3.4、验证

在浏览器输入Nginx的IP地址,tomcat1与tomcat2轮询

在这里插入图片描述

在这里插入图片描述

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...