Nginx + Tomcat负载均衡群集

目录

一、案例环境

[二、部署 Tomcat(102/103)](#二、部署 Tomcat(102/103))

1、准备环境

[(1)关闭firewalld 防火墙](#(1)关闭firewalld 防火墙)

(2)安装JDK

[2、安装配置 Tomcat](#2、安装配置 Tomcat)

[(1)Tomcat 的安装和配置](#(1)Tomcat 的安装和配置)

(2)移动并改名

(3)启动并查看监听

(4)打开浏览器测试

3、建立Java的Web站点

(1)建立目录

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

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

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

[(5)确认Web 站点](#(5)确认Web 站点)

[4、Tomcat 配置相关说明](#4、Tomcat 配置相关说明)

(1)主要目录说明

(2)配置文件说明

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

[1、Nginx 服务器配置](#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站点进行切换。

查看日志

相关推荐
米粉03052 小时前
深入剖析Nginx:从入门到高并发架构实战
java·运维·nginx·架构
静水楼台x6 小时前
nginx日志的一点理解
运维·nginx
欧先生^_^7 小时前
ingress-nginx 开启 Prometheus 监控 + Grafana 查看指标
nginx·grafana·prometheus
瘦皮猴13 小时前
golang context canceled异常排查
后端·nginx
eternal__day13 小时前
Spring Cloud 多机部署与负载均衡实战详解
java·spring boot·后端·spring cloud·负载均衡
hunter12717 小时前
Nginx 事件驱动理解
nginx
斯普信专业组1 天前
Tomcat全方位监控实施方案指南
java·tomcat
fydw_7151 天前
生产环境中安装和配置 Nginx 以部署 Flask 应用的详细指南
运维·nginx·flask
xzh1 天前
问题:Nginx client_body_temp_path 文件会删除吗,删除时机?
nginx·架构