实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离

目录

前言

一、tomcat多实例部署

步骤一:先安装jdk,设置jdk的环境变量,验证是否安装完成(192.168.20.8)

步骤二:安装tomcat(192.168.20.18)

步骤三:安装tomcat多实例(192.168.20.8)

步骤四:测试三个页面请求,验证安装成功

步骤五:分别在三个tomcat服务上部署jsp的动态页面

二、nginx的七层代理,实现动静分离(192.168.20.30)

步骤一、安装nginx,并部署nginx基于协议的反向代理(七层代理)

步骤二、location配置,实现动静分离

步骤三:准备好静态页面,用于测试

步骤四:验证结果(另一台192.168.20.10一模一样的配置)

三、nginx的四层代理,实现负载均衡

步骤一:安装nginx,部署四层反向代理,也就是负载均衡器

步骤二:验证结果


前言

实验架构图如下,最终实现负载均衡和动静分离

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第1张图片

一、tomcat多实例部署

步骤一:先安装jdk,设置jdk的环境变量,验证是否安装完成(192.168.20.8)

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第2张图片

vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第3张图片

注意:这里的export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 最后的$PATH一定要写最后 ,因为系统自带一个版本比较低的jdk,linux系统遵循最左原则,会先去读取左边先识别的命令

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第4张图片

JDK :java development kit (java开发工具)
JRE :java runtime environment (java运行时环境)
JVM :java virtuak machine (java虚拟机),使java程序可以在多种平台上运行class文件。
CLASSPATH:告诉jvm要使用或执行的class放在什么路径上,便于JVM加载class文件。
tools.jar:是系统用来编译一个类的时候用到的,即执行javac的时候用到。
dt.jar:dt.jar是关于运行环境的类库,主要是swing包。

步骤二:安装tomcat(192.168.20.18)

安装的前提是 这台主机也完成了jdk部署

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第5张图片

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第6张图片

vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat server
Wants=network-online.target
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target

步骤三:安装tomcat多实例(192.168.20.8)

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第7张图片

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第8张图片

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第9张图片

 tomcat2的部署,这个是跟tomcat1是一样的 

但是需要修改端口号,因为同一个ip地址的相同端口号只能给一个服务,所以这里选择是修改tomcat2的

 

		#22行,修改Server prot,默认为8005 -> 修改为8006
 修改为8081
	#116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010

 第一个连接器默认监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。
第二个连接器默认监听8443端口,是建立HTTPS协议的连接

第三个连接器默认监听8009端口,AJP端口,即容器使用,如Apache能通过AJP协议访问Tomcat的8009端口。

还有一个监听的8005端口,是用于接收 SHUTDOWN 命令的端口。当 Tomcat 启动时,它会在该端口监听来自本地机器的 SHUTDOWN 命令。这个 SHUTDOWN 命令用于优雅地关闭 Tomcat 服务器,即在关闭前允许正在进行的请求完成,而不是立即中断正在处理的请求。

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第10张图片

步骤四:测试三个页面请求,验证安装成功

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第11张图片

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第12张图片 实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第13张图片

步骤五:分别在三个tomcat服务上部署jsp的动态页面

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第14张图片 

mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


JSP test1 page   #指定为 test1 页面


<% out.println("动态页面 1,http://www.test1.com");%>

测试一下

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第15张图片 实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第16张图片

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第17张图片

二、nginx的七层代理,实现动静分离(192.168.20.30)

步骤一、安装nginx,并部署nginx基于协议的反向代理(七层代理)

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第18张图片

##七层代理的upstream配置在http模块内,server块前
http {
......
	#gzip on;
	
	#配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大
    upstream tomcat_server{
        server 192.168.20.8:8080 weight=1;
        server 192.168.20.8:8081 weight=1;
        server 192.168.20.18:8080 weight=1;
}
server {
......
}

步骤二、location配置,实现动静分离

 动静分离!!!

        location ~ .*\.jsp$ {
        proxy_pass http://tomcat_server;
        proxy_set_header HOST $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }
        #access_log  logs/host.access.log  main;

        location /static {
            root   html;
            index  index.html index.htm;
        }

步骤三:准备好静态页面,用于测试

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第19张图片

[root@localhost html]#ls
50x.html  index.html  static
[root@localhost html]#ls -R static/
static/:
test.html  test.jpg
[root@localhost html]#cat static/test.html 


this is static web01

步骤四:验证结果(另一台192.168.20.10一模一样的配置)

192.168.20.30的动静分离验证

静态:

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第20张图片

动态:

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第21张图片

 实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第22张图片

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第23张图片 

 动态页面请求验证

192.168.20.10的动静分离验证

静态:

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第24张图片

动态:

 实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第25张图片

三、nginx的四层代理,实现负载均衡

步骤一:安装nginx,部署四层反向代理,也就是负载均衡器

这里是使用yum安装的,yum安装的 会自带Stream

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第26张图片

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第27张图片

stream {

    upstream nginx_server {
                server 192.168.20.30:80;
                server 192.168.20.10:80;
    }
    server {
        listen 9527;
        proxy_pass nginx_server;
    }
}

步骤二:验证结果

验证负载均衡

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第28张图片

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第29张图片

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离_第30张图片

你可能感兴趣的:(nginx,tomcat,负载均衡,linux,运维)