Tomcat 负载均衡

news2025/4/17 3:54:19

目录

二、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.coloradmin.cn/o/2331019.html

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

相关文章

4月8日日记

今天抖音刷到一个视频 记了一下笔记 想做自媒体&#xff0c;直播&#xff0c;抖音是最大的平台&#xff0c;但是我的号之前因为跟人互喷被封号了 今天想把实名认证转移到新号上&#xff0c;试了一下竟然这次成功了&#xff0c;本以为能开直播了但是 还是因为之前的号有违规记…

【JavaScript】十六、事件捕获和事件冒泡

文章目录 1、事件流2、事件捕获3、事件捕获4、阻止冒泡5、解绑事件6、鼠标经过事件的区别7、两种事件注册语法的区别 1、事件流 先举个形象的例子&#xff1a;你去西安大雁塔旅游 出发找目的地时&#xff1a;先从你家出发&#xff0c;到陕西省西安市&#xff0c;再到雁塔区&a…

基于 Spring Boot 瑞吉外卖系统开发(一)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;一&#xff09; 系统概述 系统功能 技术选型 初始项目和数据准备 初始项目和SQL文件下载 创建数据库并导入数据 打开reggie项目 运行效果 主函数启动项目&#xff0c;访问URL&#xff1a; http://127.0.0.1:8080/backend/pag…

WordPress超简洁的主题:果果CMS主题

果果CMS是基于WordPress开发的超精简的一款主题&#xff0c;它在原有的特性上添加了许多新特性&#xff0c;例如&#xff1a;随机文章、随机标签、随机分类、广告、友情链接等。 新版特性&#xff1a; 小&#xff1a;主题安装包文件大小只有140.48KB。少&#xff1a;主题最小…

leetcode13.罗马数字转整数

遍历&#xff0c;下一个值不大于当前值就加上当前值&#xff0c;否则就减去当前值 class Solution {public int romanToInt(String s) {Map<Character, Integer> map Map.of(I, 1,V, 5,X, 10,L, 50,C, 100,D, 500,M, 1000);int sum 0;for (int i 0; i < s.length(…

线程安全问题的原因与解决方案总结

目录 一 什么是线程安全&#xff1f; 二 线程安全问题的实例 三 线程安全问题的原因 1.多个线程修改共享数据 2.抢占式执行 3.修改操作不是原子的 4.内存可见性问题 5.指令重排序 四 解决方案 1.同步代码块 2.同步方法 3.加锁lock解决问题 一 什么是线程安全&…

Tunable laser激光器的前向和后向锁波长方案

----转载自秦岭农民的文章 Tunable laser可调激光器的锁波长方案 激光器锁波长技术是指通过各种手段将激光器的输出波长稳定在某一特定值或范围内&#xff0c;以满足高精度应用的需求。这些技术包括Etalon、波长计/光谱仪反馈、波长参考源、温度控制、电流控制、锁相环&#…

蓝桥杯:日期统计

文章目录 问题描述解法一递归解法二&#xff1a;暴力破解 问题描述 首先我们要了解什么是子序列&#xff0c;就是一个序列之中可以忽略元素但是不能改变顺序之后获得的序列就叫做子序列。 如"123"就是"11234"的子序列而不是"11324"的子序列 解法…

IQ解调原理#通信原理系列

IQ解调原理&#xff1a;接收端收到s(t)信号后&#xff0c;分为两路&#xff1a; 一路信号乘以cosω₀t再积分&#xff0c;就可以得到a&#xff1a; 另一路乘以 -sinω₀t再积分&#xff0c;就可以得到b&#xff1a;

C++蓝桥杯实训篇(三)

片头 嗨&#xff01;小伙伴们&#xff0c;大家好~ 今天我们来学习前缀和与差分相关知识&#xff0c;准备好了吗&#xff1f;咱们开始咯&#xff01; 一、一维前缀和 以上&#xff0c;是我们用数学知识求解区间和&#xff0c;现在我们使用前缀和来求解&#xff1a; 我们知道&am…

【数据挖掘】岭回归(Ridge Regression)和线性回归(Linear Regression)对比实验

这是一个非常实用的 岭回归&#xff08;Ridge Regression&#xff09;和线性回归&#xff08;Linear Regression&#xff09;对比实验&#xff0c;使用了 scikit-learn 中的 California Housing 数据集 来预测房价。 &#x1f4e6; 第一步&#xff1a;导入必要的库 import num…

CExercise_07_1指针和数组_1编写函数交换数组中两个下标的元素

题目&#xff1a; 要求编写函数将数组作为参数传递来实现&#xff1a; 1.编写函数交换数组中两个下标的元素。函数声明如下&#xff1a;void swap(int *arr, int i, int j) 。要求不使用[]运算符&#xff0c;将[]还原成解引用运算符和指针加法来完成。 关键点 通过指针交换数组…

塔能科技:智能路灯物联运维产业发展现状与趋势分析

随着智慧城市建设的推进&#xff0c;智能路灯物联运维产业正经历快速发展&#xff0c;市场规模持续扩大。文章探讨了智能路灯物联运维的技术体系、市场机遇和挑战&#xff0c;并预测了未来发展趋势&#xff0c;为行业发展提供参考。 关键词 智能路灯&#xff1b;物联运维&#…

ZW3D二次开发_普通对话框_设置对话框弹出位置

ZW3D的普通对话框可以在UI设计时静态地设置对话框弹出的位置&#xff0c;方法如下&#xff1a; 选中对话框的最顶级对象&#xff0c;即ZsCc::Form对象&#xff0c;在属性管理器中添加一个动态属性“form_pos”&#xff0c;类型为“StringList”&#xff0c;如下图所示 不同属性…

低代码开发「JNPF」应用场景

政务系统快速搭建 在数字化政务转型的浪潮下&#xff0c;JNPF 快速开发平台扮演着关键角色&#xff0c;为政府部门提供了高效且便捷的审批流程自动化解决方案。 以 “一网通办” 为例&#xff0c;通过平台的可视化拖拽式配置功能&#xff0c;政府工作人员能够将原本复杂繁琐的…

欧拉函数模板

1.欧拉函数模板 - 蓝桥云课 问题描述 这是一道模板题。 首先给出欧拉函数的定义&#xff1a;即 Φ(n) 表示的是小于等于 n 的数中和 n 互质的数的个数。 比如说 Φ(6)2&#xff0c;当 n 是质数的时候&#xff0c;显然有 Φ(n)n−1。 题目大意&#xff1a; 给定 n 个正整数…

屏幕空间反射SSR-笔记

屏幕空间反射SSR 相关文章&#xff1a; [OpenGL] 屏幕空间反射效果 Games202-RealTime GI in Screen Space github上的例子&#xff0c;使用visual studio2019 github例子对应的文章 使用OpenGL和C实现发光柱子的SSR倒影 下面是一个使用OpenGL和C实现屏幕空间反射(SSR)来创建…

动态规划算法深度解析:0-1背包问题(含完整流程)

简介&#xff1a; 0-1背包问题是经典的组合优化问题&#xff1a;给定一组物品&#xff08;每个物品有重量和价值&#xff09;&#xff0c;在背包容量限制下选择物品装入背包&#xff0c;要求总价值最大化且每个物品不可重复选取。 动态规划核心思想 通过构建二维状态表dp[i]…

LeetCode刷题SQL笔记

系列博客目录 文章目录 系列博客目录1.distinct关键字 去除重复2.char_length()3.group by 与 count()连用4.date类型有个函数datediff()5.mod 函数6.join和left join的区别1. **JOIN&#xff08;内连接&#xff0c;INNER JOIN&#xff09;**示例&#xff1a; 2. **LEFT JOIN&a…

循环神经网络 - 参数学习之随时间反向传播算法

本文中&#xff0c;我们以同步的序列到序列模式为例来介绍循环神经网络的参数学习。 循环神经网络中存在一个递归调用的函数 &#x1d453;(⋅)&#xff0c;因此其计算参数梯度的方式和前馈神经网络不太相同。在循环神经网络中主要有两种计算梯度的方式&#xff1a;随时间反向…