Nginx + Tomcat负载均衡群集

发布于:2025-06-04 ⋅ 阅读:(28) ⋅ 点赞:(0)

目录

一、案例环境

二、部署 Tomcat(102/103)

 1、准备环境

(1)关闭firewalld 防火墙

(2)安装JDK

2、安装配置 Tomcat

(1)Tomcat 的安装和配置

(2)移动并改名

(3)启动并查看监听

(4)打开浏览器测试

3、建立Java的Web站点

(1)建立目录

(2)在webapp1目录下建立一个index.jsp 的测试页面

(3)修改Tomcat 的server.xml 文件

(4)关闭Tomcat,再重新启动

(5)确认Web 站点

4、Tomcat 配置相关说明

(1)主要目录说明

(2)配置文件说明

三、配置Nginx,实现负载均衡、动静分离群集(101)

1、Nginx 服务器配置

(1)关闭防火墙

(2)安装相关软件包

(3)解压并安装Nginx

(4)配置nginx.conf

2、测试效果


一、案例环境

IP

操作系统

应用

Nginx服务器(101)

192.168.10.101

OpenEuler24

nginx-1.26.3

Tomcat1服务器(102)

192.168.10.102

OpenEuler24

apache-tomcat-9.0.8

Tomcat2服务器(103)

192.168.10.103

OpenEuler24

apache-tomcat-9.0.8

二、部署 Tomcat(102/103)

 1、准备环境

(1)关闭firewalld 防火墙

systemctl stop firewalld
setenforce 0

(2)安装JDK

dnf -y install java

2、安装配置 Tomcat

(1)Tomcat 的安装和配置

解压本文使用的安装包

tar zxvf apache-tomcat-9.0.8.tar.gz

(2)移动并改名

mv apache-tomcat-9.0.8 /usr/local/tomcat

(3)启动并查看监听

[root@localhost ~]# /usr/local/tomcat/bin/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
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

Tomcat 默认运行在8080 端口,运行netstat 命令查看8080 端口监听的信息。

[root@localhost bin]# netstat -anpt | grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1955/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1955/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      1955/java   

(4)打开浏览器测试

在浏览器访问http://192.168.10.102:8080和http://192.168.10.103:8080即可查看Tomcat的默认界面。

3、建立Java的Web站点

(1)建立目录

mkdir -p /web/webapp1

(2)在webapp1目录下建立一个index.jsp 的测试页面

102

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("动态页面 1,http://www.test1.com");%>
   </body>
   <body>
    <div>动态页面的图片 1</div><br><img src="logo.png">
   </body>
</html>

103

vim /web/webapp1/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>   
<head>
     <title>JSP test2 page</title>   </head>
   <body>
     <% out.println("动态页面 2,http://www.test2.com");%>
   </body>
   <body>
    <div>动态页面的图片 2</div><br><img src="logo.png">
   </body>
</html>

(3)修改Tomcat 的server.xml 文件

定义一个虚拟主机,并将网站文件路径指向已经建立的/web/webapp1,在 host 段增加context 段。

vim /usr/local/tomcat/conf/server.xml 

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            <Context docBase="/web/webapp1" path="" />    #150,添加

(4)关闭Tomcat,再重新启动

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

(5)确认Web 站点

然后将准备好的logo.png图片放到/web/webapp1/目录下,访问192.168.10.102:8080和192.168.10.103:8080

4、Tomcat 配置相关说明

Tomcat 的主目录为/usr/local/tomcat/

(1)主要目录说明

  • bin/:存放 Windows 或 Linux 平台上启动和关闭 Tomcat 的脚本文件。
  • conf/:存放 Tomcat 服务器的各种全局配置文件,其中最重要的是 server.xml 和web.xml。
  • lib/:存放 Tomcat 运行需要的库文件(JARS)。
  • logs:存放 Tomcat 执行时的 LOG 文件。
  • webapps:Tomcat 的主要 Web 发布目录(包括应用程序示例)。
  • work:存放 JSP 编译后产生的 class 文件。

(2)配置文件说明

  • catalina.policy:权限控制配置文件。
  • catalina.properties:Tomcat 属性配置文件。
  • context.xml:上下文配置文件。
  • logging.properties:日志 log 相关配置文件。
  • server.xml:主配置文件。
  • tomcat-users.xml:manager-gui管理用户配置文件(Tomcat安装后提供一个manager-gui 的管理界面,通过配置该文件可以开启访问)
  • web.xml:Tomcat 的 servlet、servlet-mapping、filter、MIME 等相关配置。

三、配置Nginx,实现负载均衡、动静分离群集(101)

通常情况下,一台 Tomcat 站点由于可能出现单点故障及无法应付过多客户复杂多样的 请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完善 Web 站点 架构。

Nginx 是一款非常优秀的 http 服务器软件,它能够支持高达 50000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU 等系统资源消耗非常低。 目 前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。

Nginx 是一个非常强大的静态 web 服务,Tomcat 处理动态请求效率不高,而一般网站大 多数的内容都是静态文件(如图片、html、css、js 等),经过 Nginx 前端的反向代理加速 和过滤,后端Tomcat 处理请求的压力便可大大减少,只需负责处理动态内容就可以了。在 性能与稳定性的权衡下,使用 Nginx+Tomcat 搭配便可让它们在各自擅长的领域大展拳脚。

1、Nginx 服务器配置

在 Nginx 服务器 192.168.10.101 上安装 Nginx,反向代理到两个 Tomcat 站点,并实现负载均衡。

(1)关闭防火墙

systemctl stop firewalld
setenforce 0

(2)安装相关软件包

dnf -y install gcc make pcre-devel zlib-devel openssl-devel perl-ExtUtils-MakeMaker

(3)解压并安装Nginx

useradd -M -s /sbin/nologin nginx
tar zxf nginx-1.26.3.tar.gz
cd nginx-1.26.3
./configuer --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-pcre

(4)配置nginx.conf

在 http{…}中加入以下代码,设定负载均衡的服务器列表,weight 参数表示权重,权重越高,被分配到的概率越大。

vim /usr/local/nginx/conf/nginx.conf
    #gzip  on;
    upstream my_tomcat {
        server 192.168.10.102:8080 weight=1;
        server 192.168.10.103:8080 weight=2;
    }

把 Nginx 的默认站点通过 proxy_pass 方法代理到了设定好的 tomcat_server 负载均衡服务器组上。配置完整的 nginx.conf 文件内容如下。

vim /usr/local/nginx/conf/nginx.conf

http {
......

    #gzip  on;
    upstream my_tomcat {
        server 192.168.10.102:8080 weight=1;
        server 192.168.10.103:8080 weight=2;
    }


    server {
        listen       80;
        server_name  localhost;

        charset utf-8;

        #access_log  logs/host.access.log  main;

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

        location ~ .*\.jsp$ {
            proxy_set_header HOST $host;
            proxy_set_header Client-IP $remote_addr;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
            proxy_pass http://my_tomcat;
        }

        location ~ .*\.(png|gif|jpeg|jpg)$ {
            root /usr/local/nginx/html/img;
            expires 30d;
        }
......
    }
......
}

下面再 Nginx 上准备静态图片

mkdir /usr/local/nginx/html/img

 将图片放到img/目录下

cp /root/logo.jpg /usr/local/nginx/html/img/

测试Nginx 配置文件是否正确

[root@bogon html]# 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

启动Nginx 服务

systemctl start nginx

Nginx查看端口号及PID进程号

[root@bogon ~]# netstat -anpt | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1907/nginx: master  

2、测试效果

多次访问192.168.10.101/index.jsp,会发现下图会以1:2的比例轮流出现,就说明负载均衡群集搭建成功,已经可以再两个Tomcat server站点进行切换。

查看日志 

 


网站公告

今日签到

点亮在社区的每一天
去签到