Nginx+Tomcat负载均衡群集

实验环境部署

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

(1)Nginx 静态处理优势
Nginx 处理静态页面的效率远高于 Tomcat 的处理能力;
如果 Tomcat 的请求量为 1000次,则 Nginx 的请求量为 6000次;
Tomcat 每秒的吞吐量为 0.6 M,Nginx 的每秒吞吐量为 3.6M;
Nginx 处理静态资源的能力是 Tomcat 处理的6倍,优势很大。
(2)Tomcat 主要目录
在这里插入图片描述
(3)Nginx 应用
1、nginx是一款非常优秀的 HTTP 服务器软件:
支持高达 50000个并发连接数的响应;
拥有强大的静态资源处理能力;
运行稳定;
内存、CPU 等系统资源消耗非常低。
2、目前已有很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力。

(4)动静分离原理
1、服务端接受来自客户端的请求中,既有静态资源也有动态资源。
2、设置 nginx 处理静态图片,后端 Tomcat 处理动态页面

修改 Tomcat 端 jsp 文件,指定图片文件;
修改 nginx 配置文件,添加正则处理图片;
创建目录并添加图片(注意项目名称需要和 Java 项目名称相同)
重启 nginx;
浏览器访问测试查看图片是否添加;
分别在 nginx 服务器和 Tomcat 服务器查看日志文件

系统架构:
在这里插入图片描述
案例拓扑图:
在这里插入图片描述

服务器角色IP地址操作系统
Nginx服务器192.168.35.188centos 7
tomcat01服务器192.168.35.194centos 7
tomcat02服务器192.168.35.195centos 7

实验步骤

第一步:配置Nginx服务器

#安装环境
[root@nginx ~]#yum install gcc gcc-c++ pcre-devel zlib-devel -y

#添加Nginx管理用户
[root@nginx ~]# useradd -M -s /sbin/nologin nginx


#远程共享源码包
[root@nginx ~]# smbclient -L //192.168.100.7/
[root@nginx ~]# mount.cifs //192.168.100.7/rpm /mnt

#解压源码包
[root@nginx ~]# cd /mnt/tomcat 
[root@nginx ~]# tar zxvf nginx-1.12.0.tar.gz -C /opt

[root@nginx mnt]# cd /opt/nginx-1.12.0/

#进行configure配置
[root@nginx nginx-1.12.0]# 
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module

#编译及编译安装

[root@nginx nginx-1.12.0]# make && make install

#创建软连接让系统识别nginx启动脚本
[root@nginx nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/  

#开启服务
[root@nginx nginx-1.12.0]# nginx

[root@nginx nginx-1.12.0]# systemctl stop firewalld.service

[root@nginx nginx-1.12.0]# setenforce 0

#启动配置文件目录创建启动脚本
[root@nginx nginx-1.12.0]# vim /etc/init.d/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


#添加执行权限
[root@nginx nginx-1.12.0]# chmod +x /etc/init.d/nginx


#将nginx增加到service管理
[root@nginx nginx-1.12.0]# chkconfig --add nginx

#启动服务
[root@nginx nginx-1.12.0]# service nginx start

#查看服务端口状态
[root@nginx nginx-1.12.0]# netstat -ntap | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      42092/nginx: master 

#修改配置文件
[root@nginx nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf

 #gzip  on;
 #追加以下四行条目,用以定义tomcat服务池并分配权重
     upstream tomcat-server {
                server 192.168.35.194:8080 weight=1;
                server 192.168.35.195:8080 weight=1;
                }

    server {
        listen       80;
        server_name  localhost;

		#追加以下四行条目,用以支持
        location ~.*.jsp$ {
          proxy_pass http://tomcat-server;
          proxy_set_header Host $host;
        }

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
			#追加以下一行条目,用以调用tomcat服务池资源
            proxy_pass http://tomcat-server;
        }
		
		#追加以下四行条目,用以支持各类图片的缓存30天
        location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
            root html/test;
            expires 30d;
        }
		

#检查语法
[root@nginx nginx-1.12.0]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful


#重启服务,并查看服务端口状态
[root@nginx nginx-1.12.0]# service nginx stop
[root@nginx nginx-1.12.0]# service nginx start
[root@nginx nginx-1.12.0]# netstat -ntap | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      69680/nginx: master


#创建站点目录
[root@nginx nginx-1.12.0]# mkdir /usr/local/nginx/html/test

#复制图片到站点目录中
[root@nginx nginx-1.12.0]# cp /mnt/1wp.jpg /usr/local/nginx/html/test

第二步:配置Tomcat01服务器

#远程共享源码包
[root@tomcat01 ~]# smbclient -L //192.168.100.7
[root@tomcat01 ~]# mount.cifs //192.168.100.7/rpm /mnt

#解压源码包
cd /mnt/tomcat
[root@tomcat01 mnt]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local
[root@tomcat01 mnt]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/


#声明环境变量
[root@tomcat01 mnt]# 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@tomcat01 mnt]# source /etc/profile

[root@tomcat01 ~]# cd /usr/local
[root@tomcat01 local]# mv apache-tomcat-8.5.16/ tomcat

##创建tomcat启动脚本的软链接到系统目录中,方便系统识别
[root@tomcat01 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/

#创建tomcat关闭脚本的软链接到系统目录中,方便系统识别
[root@tomcat01 local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

#启动服务 
[root@tomcat01 local]# startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local//jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

#查看服务端口状态
[root@tomcat01 local]# netstat -ntap | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      111655/java 

#创建站点目录
[root@tomcat local]# mkdir /usr/local/tomcat/webapps/test

#编辑站点首页内容
[root@tomcat01 local]# 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>Welcom to Jiangsu</div><br><img src="1wp.jpg">
 </body>
</html>


[root@tomcat01 local]# vim /usr/local/tomcat/conf/server.xml 
#在第149行下追加以下条目,
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="false">
</Context>

#重启服务
[root@tomcat01 local]# shutdown.sh 
[root@tomcat01 local]# startup.sh

#关闭防火墙和安全功能
[root@tomcat02 local]# systemctl stop firewalld.service 
[root@tomcat02 local]# setenforce 0

第三步:配置Tomcat02服务器,步骤和Tomcat01服务器一样

#编辑站点首页内容
[root@tomcat01 local]# 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>Welcom to NanJing</div><br><img src="1wp.jpg">
 </body>
</html>

第四步:使用客户机验证网页

在这里插入图片描述
在这里插入图片描述

以下网页内容不一样,是为了验证负载均衡群集的轮询机制,真实线网环境中网页内容是一样的!


谢谢阅读!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值