Nginx + Tomcat

文章目录

1、Nginx 负载均衡实现原理

(1)Nginx 静态处理优点

(2)Tomcat 主要目录

(3)Nginx 应用

(4)动静分离原理

2、实验案例

第一步:搭建 Nginx

第二步:部署两台 Tomcat

第三步:Tomcat 中建立测试页面

第四步:修改 Nginx 配置文件,添加服务器池

第五步:客户端测试

1、Nginx 负载均衡实现原理:

Nginx 实现负载均衡是经过反向代理来实现的。

(1)Nginx 静态处理优点

Nginx 处理静态页面的效率远高于 Tomcat 的处理能力;

若是 Tomcat 的请求量为 1000次,则 Nginx 的请求量为 6000次;

Tomcat 每秒的吞吐量为 0.6 M,Nginx 的每秒吞吐量为 3.6M;

Nginx 处理静态资源的能力是 Tomcat 处理的6倍,优点很大。

(2)Tomcat 主要目录

bin:存放启动和关闭Tomcat脚本

conf:存放Tomcat不一样的配置文件

doc:存放Tomcat文档

lib/japser/common:存放Tomcat运行须要的库文件

logs:存放Tomcat执行时的LOG文件

src:存放Tomcat的源代码

webapps:Tomcat的主要Web发布目录

work:存放jsp编译后产生的class文件

(3)Nginx 应用

一、nginx是一款很是优秀的 HTTP 服务器软件:

支持高达 50000个并发链接数的响应;

拥有强大的静态资源处理能力;

运行稳定;

内存、CPU 等系统资源消耗很是低。

二、目前已有不少大型网站都应用 Nginx 服务器做为后端网站程序的反向代理及负载均衡器,提高整个站点的负载并发能力。

(4)动静分离原理

一、服务端接受来自客户端的请求中,既有静态资源也有动态资源。

二、设置 nginx 处理静态图片,后端 Tomcat 处理动态页面

修改 Tomcat 端 jsp 文件,指定图片文件;

修改 nginx 配置文件,添加正则处理图片;

建立目录并添加图片(注意项目名称须要和 Java 项目名称相同)

重启 nginx;

浏览器访问测试查看图片是否添加;

分别在 nginx 服务器和 Tomcat 服务器查看日志文件

2、实验案例:

实验拓扑图

(1)网络图总览:

Nginx + Tomcat

(2)具体案例实验:

Nginx + Tomcat

角色 IP地址

Nginx 192.168.220.131

Tomcat01 192.168.220.136

Tomcat02 192.168.220.137

实验环境说明:

准备三台虚拟机,一台做为 nginx 代理服务器,用于接收用户的访问请求,两台 Tomcat 服务器(群集);

nginx 将客户端的请求,转发给后台的多台 Tomcat 服务器处理,Tomcat 将请求回应,在经过代理服务器发给客户端;

实验验证:客户端只须要在浏览器上访问代理服务器的地址,不须要访问后台的具体 Tomcat,就能访问到网页信息。

第一步:搭建 Nginx

搭建nginx,以前博客有详细介绍。

第二步:部署两台 Tomcat

(1)配置 JAVA 环境

一、安装 jdk

rpm -ivh jdk-8u201-linux-x64.rpm

安装后的位置在:/usr/java/

二、配置环境变量

vim /etc/profile,在文件末尾添加如下代码:

export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

使环境变量生效:

source /etc/profile

三、使用 java -version 命令检查是否已安装成功

Nginx + Tomcat

(2)安装和启动 Tomcat

一、解压缩包到指定路径,/usr/local/

tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/

二、解压完成后,生成 apache-tomcat-9.0.16 文件夹,更名为 Tomcat

mv apache-tomcat-9.0.16/ tomcat

三、为了方便控制 tomcat的开启和关闭,咱们能够建立一个软链接

ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/

四、用 startup.sh 脚本开启tomcat

Nginx + Tomcat

第三步:Tomcat 中建立测试页面

(1)建立目录

mkdir -p /web/webapp1

vim  /web/webapp1/index.jsp
添加如下内容:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>

<head>
  <title>JSP test1 page</title>
</head>

<body>
  <% out.println("Welcome to test site, http://www.test1.com");%>
</body>
</html>

Nginx + Tomcat)html

(2)指定站点

目录:/usr/local/tomcat/conf

vim server.xml
添加如下代码:

 <Context docBase="/web/webapp1" path="" reloadable="false">
 </Context>

Nginx + Tomcat

(3)回到 bin/ 目录下,再从新启动一下 Tomcat

./shutdown.sh 
./startup.sh

(4)浏览器访问一下网页,检查是否成功

Nginx + Tomcat

(5)第二台 Tomcat 部署和第一台如出一辙,可是为了页面显示区别,在 /web/webapp1/index.jsp 文件中,稍做修改,将 test1 改成 test2

Nginx + Tomcat

注意:

在企业网中,群集中的 Tomcat 网站内容是如出一辙的,客户不管访问到哪一个Tomcat,提供的网站都是一致的。可是这边,为了展现实验效果,站点内容不同,是为了区分在客户端可以看出是哪一个Tomcat 提供了服务回应。

第四步:修改 Nginx 配置文件,添加服务器池

(1)文件位置:/usr/local/nginx/conf/nginx.conf

一、添加服务池:

upstream tomcat-server {
                       server 192.168.220.136:8080 weight=1;
                       server 192.168.220.137:8080 weight=1;
                    }

Nginx + Tomcat

二、在 location 段,添加如下代码,意为调用服务池(协议,端口等等)

proxy_pass http://tomcat-server;

Nginx + Tomcat

(2)重启 nginx 服务

killall -1 nginx

第五步:客户端测试

这个架构中,nginx 只做为代理服务器而存在,咱们做为用户访问网页,根本就不知道后面是哪一台具体提供服务的服务器,只须要将请求发送给 nginx 代理服务器,由 nginx 代理服务器,调用后台的Tomcat 给用户提供回应。

在客户机浏览器上访问 nginx 代理服务器:

Nginx + Tomcat

Nginx + Tomcat

咱们能够看到,从代理服务器,能够直接访问到群集Tomcat提供的服务。

相关文章
相关标签/搜索