群集—Nginx+Tomcat 负载均衡、动静分离群集

一:Tomcat简介:

  • 1、最初是由Sun的软件架构师詹姆斯.邓肯.戴维森开发。
  • 2、安装Tomcat后,安装路径下面的目录和文件,是使用或者配置Tomcat的重要文件。

二、Tomcat重要目录:

  • bin :存放启动和关闭Tomcat脚本
  • conf :存放Tomcat不同的配置文件
  • doc:存放Tomcat文档
  • lib:存放Tomcat运行需要的库文件
  • logs:存放Tomcat执行时的LOG文件
  • src:存放Tomcat的源代码
  • webapps: Tomcat的主要Web发布目录
  • work:存放jsp编译后产生的class文件

三、Nginx应用:

1、Nginx是一款非常优秀的的HTTP的服务器软件。

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

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

四、Nginx负载均衡的实现原理:

  • 1、Nginx实现负载均衡是通过反向代理实现。
    群集—Nginx+Tomcat 负载均衡、动静分离群集_第1张图片
  • 2、Nginx配置反向代理的主要参数:
    • Upstream 服务池名{ }:配置后端服务器池,以提供响应数据。(四层)
    • Proxy_pass http://服务池名:配置将访问请求转发给后端服务器池的服务器处理。

3、动静分离的原理:

  • 服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源有Nginx提供服务,动态资源Nginx转发至后端。
    群集—Nginx+Tomcat 负载均衡、动静分离群集_第2张图片

4、Nginx静态处理的优势:

  • 1、Nginx处理静态页面的效率远高于Tomcat的处理能力。
  • 2、若Tomcat的请求量为1000次,则Nginx的请求量为6000次。
  • 3、Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M。
  • 4、Nginx处理静态资源的能力是Tomcat处理的6倍。

五、Tomcat部署与测试网站搭建:

  • 1、要求部署两台后端Tomcat服务器

  • 2、为了进行测试,搭建两个内容不同的网站。

  • 3、Tomcat部署与网搭建步骤:

    • 关闭firewall防火墙
    • 安装JDK,配置java环境
    • 安装配置Tomcat
    • 创建/web/webapp1目录,修改server.xml将网站文件目录,更改到/web/webapp1/路径下
    • /web/webapp1/下建立测试页面index.Jsp ,并进行测试。
  • 4、在Nginx服务器上安装Nginx,反向代理两个Tomcat站点,并实现负载均衡

    • 关闭Firewalld防火墙
    • 安装Nginx依赖软件包
    • 解压并编译安装Nginx
    • 配置nginx.conf,添加location静态页面处理及添加upstream配置段与proxy_pass
    • 检测配置文件与启动Nginx
    • 测试负载均衡、动静分离效果

六、实验代码:

实验1:nginx与tomcat页面动静分离:
实验准备:将安装包拖进来:nginx
实验过程:
1、安装nginx静态服务器:14.0.0.14
yum -y install pcre-devel zlib-devel gcc-c++ 
useradd -M -s /sbin/nologin nginx
tar zxvf nginx.tar.gz
./configure \
 --prefix=/usr/local/nginx \
 --user=nginx \
 --group=nginx \
 --with-http_stub_status_module
make && make install
ln -s /usr/lcoal/nginx/sbin/nginx /usr/local/sbin/
nginx -t
vim /etc/init.d/nginx                          ##nginx启动脚本
#!/bin/bash
#chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
 start)
   $PROG
   ;;
 stop)
  kill -s QUIT $(cat $PIDF)
   ;;
 restart)
  $0 stop
  $0 start
   ;;
 reload)
   kill -s HUP $(cat $PIDF)
   ;;
  *)
    echo "Usage: $0 {start|stop|restart|reload}"
    exit 1
esac
exit 0
chmod +x nginx
chkconfig --add nginx
service nginx start
netstat -ntap | grep nginx            ##查看nginx是否开启??

2、tomcat动态服务器:
实验准备:将两个安装包拖进来:jdk、tomcat
实验过程:
(1)安装tomcat的环境包:
tar zxvf jdk.tar.gz -C /usr/local/
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
tar zxvf apache-tomcat.tar.gz -C /usr/local/
mv apache-tomcat/ tomcat       ##重命名
ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
startup.sh
netstat -ntap | grep 8080       ##查看是否tomcat开启?

3、做动静分离:
(1)在nginx上面,配置静态页面:
vim /usr/local/nginx/conf/nginx.conf               ##(动静分离指令)在server下面添加:
  location ~.*.jsp$ {
     
            proxy_pass http://14.0.0.15:8080;
            proxy_set_header Host $host;
            }
nginx -t 

vim /usr/local/nginx/html/index.htmln             ###制作静态页面!!
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title> 静态页面</title>
<style>
body{
     
  width:35em;
  margin:0 auto;
  font-family:Tahoma,Verdana,Arial,sans-serif;
}
</style>
</head>
<body>
 <h1> 静态页面</h1>
 <p>这是个静态页面</p>
<body>
</html>

service nginx stop
service nginx start

(2)在tomcat上制作动态网站页面:14.0.0.15
vim /usr/local/tomcat/webapps/test/index.jsp      ###动态页面!!
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4.loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>这是动态网页</title>
</head>
<body>
<div>这是动态网页</div>
<img src="game.jpg"/>
</body>
</html>

实验测试:
在浏览器上输入:nginx的地址14.0.0.14,显示“静态页面!!”
在浏览器上输入:nginx的地址14.0.0.14/test/index.jsp,显示“动态页面!!”

实验二:动静之图片分离:
在tomcat上面:
vim /usr/local/tomcat/webapps/test/index.jsp        ##添加
在nginx上面:
vim /usr/local/nginx/conf/nginx.conf                      ##在server下面添加
 location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
     
          root html;
          expires 30d;
mkdir /usr/local/nginx/html/test
cd /usr/local/nginx/html/test                                   ##在这个目录下面添加一张静态图片
service nginx restart  

实验测试:
在浏览器上输入:nginx的地址14.0.0.14/test/index.jsp,显示“动态页面和图片!!”

实验三:负载均衡:
实验准备:
将tomcat12环境部署好:
实验过程:
在新的tomcat上制作新的站点:
cd /usr/local/tomcat
mkdir -pv /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 KGC Web");%>
  </body>
</html>
        
vim /usr/local/tomcat/conf/server.xml                                    148行后面添加!!
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>

shutdown.sh
startup.sh                                                        ##到浏览器上检验!!

vim /usr/local/nginx/conf/nginx.conf
 upstream tomcat_server {
     
         server 14.0.0.15:8080 weight=1;
         server 14.0.0.16:8080 weight=1;
  }

location / {
                                                             ## 调用tomcat 服务!!在server下面添加
            root   html;
            index  index.html index.htm;
            proxy_pass http://tomcat_server;
        }

service nginx stop
service nginx start

你可能感兴趣的:(群集,nginx,tomcat,linux,centos,java)