tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)

一、tomcat多实例部署

Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,互不影响。多实例与虚拟主机不同,虚拟主机的本质是在一个服务下有多个相对独立的目录,但是多实例却存在了多个服务。

1、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
2、安装jdk和tomcat

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第1张图片

image-20220803005242857

3、创建两个实例tomcat1和tomcat2
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2 

image-20220803171335387

4、配置Tomcat环境变量
vim /etc/profile.d/tomcat.sh
#tomcat1
export CATALINA_HOME1=/usr/local/tomcat/tomcat1
export CATALINA_BASE1=/usr/local/tomcat/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat/tomcat1
  
#tomcat2
export CATALINA_HOME2=/usr/local/tomcat/tomcat2
export CATALINA_BASE2=/usr/local/tomcat/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
  
  
source /etc/profile.d/tomcat.sh

image-20220803171415828

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第2张图片

5、修改tomcat2的server.xml文件的监听端口号
cp /usr/local/tomcat/tomcat2/conf/server.xml /usr/local/tomcat/tomc
at2/conf/server.xml.bak  #备份

vim /usr/local/tomcat/tomcat2/conf/server.xml
<Server port="8006" shutdown="SHUTDOWN">      #22行,修改Server prot,默认为8005 -> 修改为8006
<Connector port="8081" protocol="HTTP/1.1"       #69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />  #116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010

image-20220803171745706image-20220803171809609image-20220803171823955

6、修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
vim /usr/local/tomcat/tomcat1/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
##添加以下内容
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
  
  
vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
  
vim /usr/local/tomcat/tomcat2/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2
  
vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第3张图片

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第4张图片

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第5张图片

image-20220803172207685

4、开启Tomcat服务
/usr/local/tomcat/tomcat1/bin/startup.sh
/usr/local/tomcat/tomcat2/bin/startup.sh
  
netstat -natp | grep java

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第6张图片

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第7张图片

5、测试

使用客户端pc(192.168.10.111)测试

http://192.168.10.10:8080/
http://192.168.10.10:8081/

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第8张图片

二、Nginx+Tomcat负载均衡+动静分离

Nginx实现负载均衡是通过反向代理实现:

  • Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。
  • 但是不是把所有的web请求转发,而是将静态页面请求Nginx服务器自己来处理,动态页面请求,转发给后端的Tomcat服务器来处理。
  • Tomcat是属于轻量级的应用服务器,可接受访问量可能会不足,所以我们需要多台Tomcat服务器,然后通过Nginx配置权重来进行挑选Tomcat服务器去进行处理,负载均衡的一种策略。
2.1、什么是反向代理和那正向代理又是什么?

反向代理:

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

反向代理可以理解为,代理服务器代理的是它后面的服务器群,客户端只能找代理请求服务,而不知道具体提供服务的是哪台服务器。

正向代理:

就是一个位于客户端和原始服务器之前的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并且指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。可以简单理解为,代理服务器代理的是客户端来访问服务器。

2.2、Nginx动静分离
1、Nginx动静分离原理

服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源有Nginx提供服务,动态资源Nginx转发至后端。

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第9张图片

2、Nginx静态处理优势
  • Nginx处理静态页面的效率远高于Tomcat的处理能力
  • 若Tomcat的请求量为1000次,则Nginx的请求量为6000次
  • Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3 .6M
  • Nginx处理静态资源的能力是Tomcat处理的6倍
2.3、部署nginx服务器部署(192.168.10.12,192.168.10.13)
2.3.1、安装部署nginxWeb服务器
配置nginxyum源
    
rpm -Uvh  http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

cat /etc/yum.repos.d/nginx.repo //查看rpm添加的yum源文件
[root@server-test2 yum.repos.d]# cat nginx.repo 
# nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

yum -y install nginx

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第10张图片

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第11张图片

2.3.2 配置Nginx
vim /etc/nginx/nginx.conf

    http{
    .......

    #gzip  on;

        upstream appserver {
                server 192.168.10.10:8080 weight=1;
                server 192.168.10.10:8081 weight=1;
                server 192.168.10.14:8080 weight=1;
        }

    include /etc/nginx/conf.d/*.conf;

vim /etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  www.setting.com;

    #access_log  /var/log/nginx/host.access.log  main;
        location ~ .*.jsp$ {
                proxy_pass http://appserver;
                proxy_set_header HOST $host;

                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
                root /var/www/html;
                expires 10d;
        }
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
.......

image-20220804173557672

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第12张图片

2.3.3 添加网页并开启服务
cd /usr/share/nginx/html //yum安装的默认html目录
echo "this is nginx2 " > setting.html //nginx服务器1
echo "this is nginx2 " > setting.html //ningx服务器2
    
   systemctl start nginx

image-20220803163607765

image-20220803163617767

image-20220803163631615

2.4、部署Tomcat服务器
2.4.1、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
2.4.2、安装jdk和tomcat

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第13张图片

image-20220803005242857

2.4.3、创建两个实例tomcat1和tomcat2
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2 

image-20220803171335387

2.4.4、配置环境变量
vim /etc/profile.d/tomcat.sh
#tomcat1
export CATALINA_HOME1=/usr/local/tomcat/tomcat1
export CATALINA_BASE1=/usr/local/tomcat/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat/tomcat1
  
#tomcat2
export CATALINA_HOME2=/usr/local/tomcat/tomcat2
export CATALINA_BASE2=/usr/local/tomcat/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
  
  
source /etc/profile.d/tomcat.sh

image-20220803171415828

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第14张图片

2.4.5、修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号
cp /usr/local/tomcat/tomcat2/conf/server.xml /usr/local/tomcat/tomc
at2/conf/server.xml.bak  #备份

vim /usr/local/tomcat/tomcat2/conf/server.xml
<Server port="8006" shutdown="SHUTDOWN">      #22行,修改Server prot,默认为8005 -> 修改为8006
<Connector port="8081" protocol="HTTP/1.1"       #69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />  #116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010

image-20220803171745706image-20220803171809609image-20220803171823955

2.4.6、修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
vim /usr/local/tomcat/tomcat1/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
##添加以下内容
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
  
  
vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
  
vim /usr/local/tomcat/tomcat2/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2
  
vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第15张图片

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第16张图片

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第17张图片

image-20220803172207685

2.4.7、启动tomcat

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第18张图片

2.5、验证

tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)_第19张图片

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