Tomcat 负载均衡

目录

二、Tomcat Web Server

2.1 Tomcat 部署

2.1.1 Tomcat 介绍

2.1.2 Tomcat 安装

 2.2 Tomcat 服务管理

2.2.1 Tomcat 启停

2.2.2 目录说明

2.2.3编辑主页

 2.3 Tomcat管理控制台

 2.3.1开启远程管理

2.3.2 配置远程管理密码

 三、负载均衡

3.1 重新编译Nginx

3.1.1 确认环境

 3.1.2重新加压编译安装

3.2 配置Nginx


二、Tomcat Web Server

2.1 Tomcat 部署

2.1.1 Tomcat 介绍

        Tomcat 官网:Apache Tomcat® - Welcome!

        Tomcat是在服务器中使用

        Tomcat 虽然和 Apache HTTPD 或者 Nginx 服务器一样,具有处理 HTML 页面的功能,但是其处理静态 HTML 的功能不及前两者。 Tomcat 通常是作为Java 主页的解析容器。

2.1.2 Tomcat 安装

        检查Java 环境。

[root@localhost ~]# java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
[root@localhost ~]#

        安装解压软件。

#1、安装
wget https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.54/bin/apache-tomcat-7.0.54.tar.gz -P ~/Desktop#2、解压
tar xf ~/Desktop/apache-tomcat-7.0.54.tar.gz -C /usr/local#3、查看
[root@localhost ~]# ls
anaconda-ks.cfg Desktop Downloads Music Public Templates
apache-tomcat-7.0.54 Documents initial-setup-ks.cfg Pictures server.conf.sh Videos
[root@localhost ~]# mv apache-tomcat-7.0.54/ /usr/local/tomcat_7.0.54
[root@localhost ~]# ls -l /usr/local/tomcat_7.0.54/

 2.2 Tomcat 服务管理

2.2.1 Tomcat 启停

        开启tomcat 服务。
[root@localhost ~]# cd /usr/local/tomcat_7.0.54/
[root@localhost tomcat_7.0.54]# ./bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat_7.0.54
Using CATALINA_HOME: /usr/local/tomcat_7.0.54
Using CATALINA_TMPDIR: /usr/local/tomcat_7.0.54/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat_7.0.54/bin/bootstrap.jar:/usr/local/tomcat_7.0.54/bin/tomcat-juli.jar
Tomcat started.
[root@localhost tomcat_7.0.54]# netstat -anptul | grep ":8080"
tcp6 0 0 :::8080 :::* LISTEN 5706/java 
[root@localhost tomcat_7.0.54]#

        在local/bin的目录中,有.sh结尾的和.bat结尾的原因是因为tomcat不仅可以在Linux环境中运行,还可以在Windows环境中运行。 在Linux中启动使用 ./startup.sh。

        此时在client客户端中也可以访问:

         关闭Tomcat服务,停止就是运行 shutdown.sh。

[root@localhost ~]# cd /usr/local/tomcat_7.0.54/
[root@localhost tomcat_7.0.54]# ./bin/shutdown.sh
Using CATALINA_BASE: /usr/local/tomcat_7.0.54
Using CATALINA_HOME: /usr/local/tomcat_7.0.54
Using CATALINA_TMPDIR: /usr/local/tomcat_7.0.54/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat_7.0.54/bin/bootstrap.jar:/usr/local/tomcat_7.0.54/bin/tomcat-juli.jar
[root@localhost tomcat_7.0.54]#

2.2.2 目录说明

[root@localhost apache_tomcat_7.0.54]# ls -lh
total 96K
drwxr-xr-x 2 root root 4.0K Feb 3 22:24 bin         存放启动或关闭tomcat 服务的脚本
drwxr-xr-x 3 root root 174 Feb 3 22:25 conf         存放tomcat 全局配置文件
drwxr-xr-x 2 root root 4.0K Feb 3 22:24 lib         存放tomcat 需要的库文件
-rw-r--r-- 1 root root 56K May 20 2014 LICENSE
drwxr-xr-x 2 root root 197 Feb 3 22:25 logs         存放日志文件
-rw-r--r-- 1 root root 1.2K May 20 2014 NOTICE
-rw-r--r-- 1 root root 8.8K May 20 2014 RELEASE-NOTES
-rw-r--r-- 1 root root 16K May 20 2014 RUNNING.txt
drwxr-xr-x 2 root root 30 Feb 3 22:24 temp
drwxr-xr-x 7 root root 81 May 20 2014 webapps Web     应用部署目录
drwxr-xr-x 3 root root 22 Feb 3 22:25 work jsp         编译后产生的class 文件
[root@localhost apache_tomcat_7.0.54]#

2.2.3编辑主页

        Tomcat 默认应用: webapps/ROOT
        Tomcat 默认主页: webapps/ROOT/index.jsp
5个文件夹,就有五个网站。

       刚进去看到的页面是在ROOT中,修改jsp文件
将上面的图片内容修改成为下面的图片的内容:

         在客户端中刷新

 2.3 Tomcat管理控制台

 2.3.1开启远程管理

        Tomcat 管理控制台,能对 Web 应用进行管理,包括部署、启动、停止、卸载的操作。管理控制台配置文件: webapps/manager/META-INF/context.xml 。
        开启管理控制台远程连接。
vim /usr/local/apache-tomcat_7.0.54/webapps/manager/META-INF/context.xml

         将下面的代码粘贴到上面打开的文件中。

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.
(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?
|java\.util\.(?:Linked)?HashMap"/>

         配置完成之后不用重启。

2.3.2 配置远程管理密码

        进入管理控制台需要使用帐密。配置文件地址: conf/tomcat-users.xml

<roleomca rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admingui,admin-script"/>

        进入文件:

         将上面的代码粘贴进去:

        配置好之后需要重启Tomcat服务:

         火狐中登录查看:


 三、负载均衡

        nginx负载均衡

        当请求过来的时候,按照负载均衡算法分担到.100,101,102的服务器中去,即分给服务器1,2,3.....中,就是所谓的服务器集群

        客户只知道自己是访问tomcat,不知道自己访问的是nginx,所以说叫反向代理

        这里要反向代理,需要重新安装nginx,网关中安装。

        具体过程是需要按照Tomcat安装步骤,给Server和Syslog安装Tomcat。

         因为上面的步骤中已经把Server中的Tomcat部署好了,这里只部署Syslog。

3.1 重新编译Nginx

3.1.1 确认环境

        确认开发环境是否安装。

[root@localhost ~]# yum install zlib-devel pcre-devel -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
dvd | 3.6 kB 00:00:00 
Package zlib-devel-1.2.7-17.el7.x86_64 already installed and latest version
Package pcre-devel-8.32-17.el7.x86_64 already installed and latest version
Nothing to do
[root@localhost ~]#

        确认账号是否创建。

[root@localhost ~]# id nginx
uid=251(nginx) gid=1001(nginx) groups=1001(nginx)
[root@localhost ~]# grep "^nginx" /etc/passwd
nginx:x:251:1001::/home/nginx:/sbin/nologin
[root@localhost ~]#

        网关中停止Nginx。

         删除Nginx的文件。

         本地的Nginx也删除。

 3.1.2重新加压编译安装

[root@localhost ~]# tar xf Desktop/nginx-1.6.0.tar.gz
[root@localhost ~]# cd nginx-1.6.0/
[root@localhost nginx-1.6.0]# ./configure --prefix=/usr/local/nginx_1.6.0 --user=nginx --group=nginx --with-file-aio -
-with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-openssl=/usr/bin/openssl
[root@localhost nginx-1.6.0]# make
[root@localhost nginx-1.6.0]# make install

        make和make install 之后之后启动。

         进入Nginx。

        参数说明:

--user
指定用户
--group
指定组
--with-file-aio
启用文件修改
--with-http_stub_status_module
启用状态统计
--with-http_gzip_static_module
启用 gzip 静态压缩
--with-http_flv_module
启用 flv 模块
--with-http_ssl_module
启用 SSL 模块

3.2 配置Nginx

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

        反向代理把nginx的请求分发给tomcat。

        注释那原有的两个页面,然后加一个代理。

        正确的配置如下:upstream 和Server是同一个级别的。

http{upstream ajest_server { 设置负载均衡服务器地址server 172.16.1.100:8080 weight=1;server 172.16.1.200:8080 weight=1;}server {location / {proxy_pass http://ajest_server; 启用反代功能}
}

        然后重启nginx。

     设置的权重是一样的,所以分配的时候是随机的。

     所以访问http://192.168.1.254/时候是随机分配到Server和Syslog的。

     多刷新几次就会有100和200的分别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/75101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用SpringSecurity下,发生重定向异常

使用SpringSecurity下&#xff0c;发生空转异常 环境信息&#xff1a; Spring Boot 3.4.4 &#xff0c; jdk 17 &#xff0c; springSecurity 6.4.4 问题背景&#xff1a; 没有自定义controller &#xff0c;改写了login 页面&#xff0c;并且进行了成功后的跳转处理&#xf…

S130N-ISI 全栈方案与云平台深度协同:重构 PLC 开发新范式

一、什么是 PLC&#xff1f; 1.技术定义 PLC&#xff08;Power Line Communication&#xff09;是一种创新的通信技术&#xff0c;它以电力线作为天然的传输介质&#xff0c;通过先进的信号调制技术将高频数据信号叠加于工频电流之上&#xff0c;实现电力输送与数据通信的双频共…

SU-YOLO:基于脉冲神经网络的高效水下目标检测模型解析

论文地址:https://arxiv.org/pdf/2503.24389 目录 一、论文概述 二、创新点解析 1. 基于脉冲的水下图像去噪(SpikeDenoiser) 原理与结构 2. 分离批归一化(SeBN) 原理与结构 3. 优化的残差块(SU-Block) 原理与结构 三、代码复现指南 环境配置 模型训练 四、…

实现阿里云服务器上的文字聊天程序以及C语言写的进程间通信(IPC)程序

实现阿里云服务器上的文字聊天程序以及C语言写的进程间通信&#xff08;IPC&#xff09;程序 1. 基于 Linux 中的管道进行进程间通信 我们首先使用管道进行进程间通信&#xff0c;这对于简单的聊天程序来说是一个比较简单且实用的方法。 步骤&#xff1a; 创建管道&#xf…

COMSOL 与人工智能融合的多物理场应用:28个案例的思路、方法与工具概述

应用案例概述 基于 COMSOL 与人工智能&#xff08;AI&#xff09;结合的应用案例涵盖了 28 个多领域场景&#xff0c;包括工程&#xff08;如热传导优化、结构力学预测&#xff09;、能源&#xff08;如电池热管理、燃料电池性能&#xff09;、生物医学&#xff08;如药物传递…

SAN及其ZONE

目录 一、什么是SAN? 二、什么是ZONE? 三、配置ZONE 2.1 核心概念 2.2 划分原则 2.3 Zone划分最佳实践 2.4 配置语法 1). 基于端口&#xff08;Domain,Port&#xff09;的zone语法 2). 基于WWN&#xff08;World Wide Name&#xff09;的Zone语法 3). 使用Alias简化配置 4).…

Springboot框架—单元测试操作

Springboot单元测试的操作步骤&#xff1a; 1.添加依赖spring-boot-starter-test 在pom.xml中添加依赖spring-boot-starter-test 2.在src/test/java下新建java class 3.单元测试入口代码结构 import org.junit.Test; import org.junit.runner.RunWith; import org.springfra…

用AbortController取消事件绑定

视频教程 React - &#x1f914; Abort Controller 到底是什么神仙玩意&#xff1f;看完这个视频你就明白了&#xff01;&#x1f4a1;_哔哩哔哩_bilibili AbortController的好处之一是事件绑定的函数已无需具名函数,匿名函数也可以被取消事件绑定了 //该代码2秒后点击失效…

JavaScript性能优化(上)

1. 减少 DOM 操作 减少 DOM 操作是优化 JavaScript 性能的重要方法&#xff0c;因为频繁的 DOM 操作会导致浏览器重绘和重排&#xff0c;从而影响性能。以下是一些具体的策略和技术&#xff0c;可以帮助有效减少 DOM 操作&#xff1a; 1.1. 批量更新 DOM 亲切与母体&#xff…

OpenCV 图形API(14)用于执行矩阵(或图像)与一个标量值的逐元素乘法操作函数mulC()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 描述 将矩阵与标量相乘。 mulC 函数将给定矩阵 src 的每个元素乘以一个给定的标量值&#xff1a; dst ( I ) saturate ( src1 ( I ) ⋅ multiplier ) \…

持续集成与Jenkins安装使用教程

一、持续集成与Jenkins 持续集成&#xff08;Continuous integration&#xff0c;简称CI&#xff09;指的是&#xff0c;频繁地&#xff08;一天多次&#xff09;将代码集成到主干。 持续集成的目的&#xff0c;就是让产品可以快速迭代&#xff0c;同时还能保持高质量。 它的…

TIM定时器

一、TIM定时器 STM32高级定时器实战&#xff1a;PWM、捕获与死区控制详解-CSDN博客 玩转STM32_rivencode的博客-CSDN博客 二、相关函数 1.TIM_TimeBaseInitTypeDef结构体讲解 typedef struct {uint16_t TIM_Prescaler; // 预分频器&#xff0c;用于设置定时器计数频…

Python 小练习系列 | Vol.14:掌握偏函数 partial,用函数更丝滑!

&#x1f9e9; Python 小练习系列 | Vol.14&#xff1a;掌握偏函数 partial&#xff0c;用函数更丝滑&#xff01; 本节的 Python 小练习系列我们将聚焦一个 冷门但高能 的工具 —— functools.partial。它的作用类似于“函数的预设模板”&#xff0c;能帮你写出更加灵活、优雅…

开源 PDF.js 文件编辑操作

一、PDF.js PDF.js 是 Mozilla 基金会推出的一个使用 HTML5 构建的 PDF 阅读器&#xff0c;它完全使用 JavaScript 编写。作为 Firefox 浏览器的默认 PDF 查看器&#xff0c;PDF.js 具有强大的兼容性和稳定性。它不仅支持 PDF 文件的查看和渲染&#xff0c;还提供了丰富的交互…

3D珠宝渲染用什么软件比较好?渲染100邀请码1a12

印度珠宝商 Mohar Fine Jewels 和英国宝石商 Gemfields 在今年推出了合作珠宝系列——「Emeralds in Full Bloom」&#xff0c;它的灵感源自花草绽放的春季田野&#xff0c;共有 39 件作品&#xff0c;下面这个以植物为主题的开口手镯就是其中一件。 在数字时代&#xff0c;像这…

增益调度控制 —— 理论、案例与交互式 GUI 实现

目录 增益调度控制 —— 理论、案例与交互式 GUI 实现一、引言二、增益调度控制的基本原理三、数学模型与公式推导四、增益调度控制的优势与局限4.1 优势4.2 局限五、典型案例分析5.1 案例一:航空飞行控制中的增益调度5.2 案例二:发动机推力控制中的增益调度5.3 案例三:化工…

PyTorch数据加载流程解析

1. 定义最简单的Dataset import torch from torch.utils.data import Dataset, DataLoaderclass MyDataset(Dataset):def __init__(self, data):self.data data # 假设data是一个列表&#xff0c;如[10, 20, 30, 40]def __len__(self):return len(self.data) # 返回数据总量…

xsync脚本是一个基于rsync的工具

xsync脚本是一个基于rsync的工具&#xff0c;用于在集群间高效同步文件或目录。以下是xsync脚本的详细使用方法和配置步骤&#xff1a; 一、xsync脚本的作用 xsync脚本可以快速将文件或目录分发到集群中的多个节点&#xff0c;避免了手动逐台复制文件的繁琐操作。它利用rsync…

250408_解决加载大量数据集速度过慢,耗时过长的问题

250408_解决加载Cifar10等大量数据集速度过慢&#xff0c;耗时过长的问题&#xff08;加载数据时多线程的坑&#xff09; 在做Cifar10图像分类任务时&#xff0c;发现每个step时间过长&#xff0c;且在资源管理器中查看显卡资源调用异常&#xff0c;主要表现为&#xff0c;显卡…

Ansible的使用2

#### 一、Ansible变量 ##### facts变量 > facts组件是Ansible用于采集被控节点机器的设备信息&#xff0c;比如IP地址、操作系统、以太网设备、mac 地址、时间/日期相关数据&#xff0c;硬件信息等 - setup模块 - 用于获取所有facts信息 shell ## 常用参数 filter…