Linux:tomcat (源码包安装)(官网下载-安装-启动-配置-等等等-----从入门到入土)

介绍

Apache Tomcat®软件是一个开源实现 Jakarta Servlet、Jakarta Server Pages、Jakarta Expression Language、Jakarta WebSocket、Jakarta Annotations 和 Jakarta Authentication 规范。 这些规范是Jakarta EE平台的一部分。

Apache Tomcat软件是在开放和参与式中开发的。 环境,并在 Apache 许可证版本 2 下发布。这 Apache Tomcat项目旨在成为同类最佳项目的合作 来自世界各地的开发人员。 

Apache Tomcat 软件为众多大规模任务关键型网络提供支持 适用于各种行业和组织。一些 这些用户及其故事列在 PoweredBy wiki 页面上 

Apache Tomcat,Tomcat,Apache,Apache feather和Apache Tomcat 项目徽标是 Apache 软件基金会的商标。 


环境 

我在centos7 上进行的一系列操作


准备安装包环境 (下载)

我们要准备tomcat的tar归档包和java归档包

因为tomcat依赖java环境

前往tomcat官网

Apache Tomcat® - Welcome!

这里选择版本,你可以选择需要的版本或者最新版都可以,我这里拿   10  当案例了

选择那个版本点击一下进去 

 

咱们是Linux选择上面两个的其中任意一个,我这里选择第二个以tar.gz结尾的 

点击一下即可下载

下载完这个我们再去下载jdk包也就是java

爪哇下载 |甲骨文中国 (oracle.com)

 点击下载

现在两个包全准备好了

把这俩包全放进服务器 


 安装tomcat和jdk

 首先我们要确保没有以前的Java环境和关闭防火墙和seLinux

yum -y remove java
systemctl stop firewalld
setenforce 0

这个只是临时关闭,要是想学习详细的防火墙或者selinux可以翻找我往期文章

现在先配置java环境

tar xf jdk-20_linux-x64_bin.tar.gz 

这里跟上你的安装包名称,可能我们下载的版本不同只需修改一下归档包名称即可其他操作的大同小异 

mv jdk-20.0.2/ /usr/local/java
vim /etc/profile.d/java.sh写入  ↓ export JAVA_HOME=/usr/local/java
#设置java根目录
export PATH=$PATH:$JAVA_HOME/bin
#在path环境变量中添加java根目录下的bin子目录

source /etc/profile.d/java.sh 

 

 ok了   java环境配置成功

开始安装tomcat

tar xf apache-tomcat-10.1.13.tar.gz 

# tar xf后面跟上你tomcat归档包名称

mv apache-tomcat-10.1.13 /usr/local/tomcat

其实到这里就已经可以启动了


启动&&关闭

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

 

8080

如果你要访问的话就  服务器ip地址:8080

 

停止的话就使用

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

关闭成功 


 配置基础网页

如果你想修改这个默认网页

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

在141行   开始配置

appBase就是主路径

我们在/下打算创建一个web主路径就修改为

配置完这个再加一行

<Context docBase="/web/webapp1" path="" reloadable="false"></Context>  

docBase   ##web应用的文档基准目录
path      ##设置默认类
reloadable  ##设置监视‘类’是否变化 

现在我们把网页文件放进/web/webapp1就行了

 在这之前记得重启下服务,刷新一下配置文件

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

注意:

主网页文件名称应为    index.jsp 

 


nginx负载均衡

环境介绍

第一台服务器    tomcat    192.168.254.1

第二台服务器    tomcat     192.186.254.2

第三台服务器     nginx        192.168.254.3

使用第三台nginx服务器作为网站入口,由nginx当作入口让他去分配访问那个网站


官网安装

去nginx官网nginxicon-default.png?t=N7T8https://nginx.org/en/

 

点击download 

点击要安装的软件

把下载下来的tar归档包放进服务器

yum -y install pcre-devel zlib-devel openssl-devel gcc make psmisc
groupadd www
useradd -g www -s /bin/false www

/bin/false和/sbin/nologin的区别 
/bin/false是最严格的禁止login选项,一切服务都不能用。 
/sbin/nologin只是不允许login系统  

tar xf nginx-1.24.0.tar.gz -C /usr/src/
cd /usr/src/nginx-1.24.0/
./configure --prefix=/usr/local/nginx --user=www --group=www --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module  &&make &&make install

--user=www --group=www 指定运行的用户、组
--with-file-aio    启用文件修改支持
--with-http_stub_status_module  启用状态统计
--with-http_gzip_static_module 启用gzip静态压缩
--with-http_flv_module 启用flv模块,提供寻求内存使用基于时间的偏移量文件 
--with-http_ssl_module 启用ssl模块

 执行完之后我们就安装好nginx了

/usr/local/nginx/sbin/nginx 

这样就可以开启去看效果了

 

killall -9 nginx

可以关闭服务 


正文:nginx负载均衡配置

 

 

准备了两个网站,分别在两个不同的服务器上,我们用于测试所以把内容改成不一样的

如果在实际中,大多数的页面都是一样的,这样访问用户感觉不出什么,但是nginx分配到了不同主机上,实现负载均衡

我们到第三台,nginx服务器上进行配置

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

 在文件内http{}中任意位置写入

 写入内容为

   upstream tomcat_server {server 192.168.10.1:8080 weight=1;server 192.168.10.2:8080 weight=1;}
# tomcat_server    是名称可以随便写,等会和下面要写的对应上就可以
# server ---       后边是服务器ip地址和端口号
# weight ---       是优先级 如果后面的数越高那么分给他的浏览就越多

位置随便写,只要写在http的那层就行,不要进到别的里面了 

 

 然后在server{}中添加

server{}里面找到location / {root   html;index  index.html index.html }然后在location里面添加 proxy_pass http://tomcat_server;
http://;  中的就是上面名称,只要两个对应起来就行改为   location / {root   html;index  index.html index.html proxy_pass http://tomcat_server;}

如果开启着服务那就重启一下服务

killall -9 nginx
/usr/local/nginx/sbin/nginx

这时候我们直接访问第三台nginx服务器

刷新一下

 

再刷新一下

 

分别把流量分配到了不同服务器上,在实际中我们两台服务器上的内容是一样的可以把用户的流量均匀分到两台服务器上 ,从而达到负载均衡

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

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

相关文章

基于SSM的学校运动会信息管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

网络协议从入门到底层原理学习(一)—— 简介及基本概念

文章目录 网络协议从入门到底层原理学习&#xff08;一&#xff09;—— 简介及基本概念一、简介1、网络协议的定义2、网络协议组成要素3、广泛的网络协议类型网络通信协议网络安全协议网络管理协议 4、网络协议模型对比图 二、基本概念1、网络互连模型2、计算机之间的通信基础…

洞察商机,驱动创新:智能数据分析引领企业发展

“五度易链”产业大数据解决方案由产业经济、智慧招商、企业服务、数据服务四大应用解决方案组成&#xff0c;囊括了产业经济监测、产业诊断分析、企业监测预警、企业综合评估、大数据精准招商、招商智能管理、企业管理、企业培育、企业市场服务、企业金融服务、产业数据开放服…

智慧工地可视化解决方案-智慧工地源码

智慧工地是指运用信息化手段&#xff0c;围绕施工过程管理&#xff0c;建立互联协同、智能生产、科学管理的施工项目信息化生态圈&#xff0c;并将此数据在虚拟现实环境下与物联网采集到的工程信息进行数据挖掘分析&#xff0c;提供过程趋势预测及专家预案&#xff0c;实现工程…

每日一题 2651. 计算列车到站时间

难度&#xff1a;简单 不多说 class Solution:def findDelayedArrivalTime(self, arrivalTime: int, delayedTime: int) -> int:return (arrivalTime delayedTime) % 24

为什么在线客服系统的消息撤回功能是有必要的?

如今在日常工作和沟通中&#xff0c;很多企业都在使用在线客服系统跟客户进行线上交流和协作。然而有时候客服可能会不小心发送错误的消息或包含敏感信息的消息&#xff0c;人们在现实的沟通交流中是不会真实存在“说出去的话还能收回来”的情况&#xff0c;但这是在网络上&…

2023-09-05 LeetCode每日一题(从两个数字数组里生成最小数字)

2023-09-05每日一题 一、题目编号 2605. 从两个数字数组里生成最小数字二、题目链接 点击跳转到题目位置 三、题目描述 给你两个只包含 1 到 9 之间数字的数组 nums1 和 nums2 &#xff0c;每个数组中的元素 互不相同 &#xff0c;请你返回 最小 的数字&#xff0c;两个数…

大模型综述论文笔记6-15

这里写自定义目录标题 KeywordsBackgroud for LLMsTechnical Evolution of GPT-series ModelsResearch of OpenAI on LLMs can be roughly divided into the following stagesEarly ExplorationsCapacity LeapCapacity EnhancementThe Milestones of Language Models Resources…

如何解决前端传递数据给后端时精度丢失问题

解决精度丢失 有时候我们在进行修改操作时&#xff0c;发现修改既不报错也不生效。我们进行排查后发现服务器端将数据返回给前端时没有出错&#xff0c;但是前端js将数据进行处理时却出错了&#xff0c;因为id是Long类型的&#xff0c;而js在处理后端返回给前端的Long类型数据…

git 给分支添加描述

需求:分支多了不知道当前分支的用处可以使用git br用来描述 效果: 全局安装命令 npm i -g git-br 项目内使用 git br 给f-230825-4-zhou分支备注 git config branch.f-230825-4-zhou.description 用来开发第四迭代需求 再次git br查看效果

【PHP代码审计】反序列化漏洞实战

文章目录 概述资源下载地址Typecho代码审计-漏洞原理call_user_func()_applyFilter()、get()与__get__toString()__construct()install.php POC利用漏洞利用复现利用链执行phpinfo()GET利用POST利用 getshell生成payload漏洞利用蚁剑连接 总结 概述 序列化&#xff0c;“将对象…

13 mysql date/time/datetime/year 的数据存储

前言 这里主要是 由于之前的一个 datetime 存储的时间 导致的问题的衍生出来的探究 探究的主要内容为 int 类类型的存储, 浮点类类型的存储, char 类类型的存储, blob 类类型的存储, enum/json/set/bit 类类型的存储 本文主要 的相关内容是 datetime/date/time/year 类类型…

NS2安装及入门实例——(ns2.35 / Ubuntu20.04)

文章目录 一、ns2安装1、更新系统源2、准备工作3、下载安装包4、安装5、问题① 问题1② 问题2③ 问题3 6、安装成功7、环境配置 二、nam安装1、安装2、问题 三、实例 一、ns2安装 1、更新系统源 sudo apt-get update sudo apt-get upgrade2、准备工作 sudo apt-get install …

Oracle 遍历变量游标

背景 由于我们的数据库系统中的游标特别多&#xff0c;DBA让我们优化&#xff0c;减少游标的使用。 电脑系统&#xff1a;windows数据库&#xff1a;Oracle数据库图形化界面工具&#xff1a;Toad&#xff0c;DBeaver(我測試的時候用的)记录日期&#xff1a;2023-09-04 具体实…

计算机重点学科评级B-,山东省属重点高校考情分析

山东科技大学(B-) 考研难度&#xff08;☆☆&#xff09; 内容&#xff1a;23考情概况&#xff08;拟录取和复试分析&#xff09;、院校概况、23专业目录、23复试详情、各专业考情分析、各科目考情分析。 正文1175字预计阅读&#xff1a;3分钟 2023考情概况 山东科技大学计…

Android12之解析/proc/pid进程参数(一百六十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

记一次诡异的Cannot find declaration to go to,Cannot resolve method

记一次诡异的 Cannot find declaration to go to&#xff0c; Cannot resolve method getOnExpressions in Join 对于项目中通常问题&#xff0c;清除缓存&#xff0c;重启idea&#xff0c;或者仔细检查语法通常都能解决问题&#xff0c;但是这次却失效了&#xff0c;以下是原…

Scala面向对象编程(高级部分)

1. 静态属性和静态方法 &#xff08;1&#xff09;回顾Java中的静态概念 public static 返回值类型 方法名(参数列表) {方法体} 静态属性… 说明: Java中静态方法并不是通过对象调用的&#xff0c;而是通过类对象调用的&#xff0c;所以静态操作并不是面向对象的。 &#xff0…

深入探讨Java Stream流:数据处理的新思维

文章目录 1. 流式思想1.1 输入流与输出流1.2 Stream流 2. 使用Stream流的步骤3. 获取Stream流3.1 容器3.2 数组 4. Stream流中间操作方法4.1 filter(Predicate<? super T> predicate)4.2 limit(long maxSize)4.3 skip(long n)4.4 distinct()4.5 sorted() 和 sorted(Comp…

Java使用pdfbox将pdf转图片

前言 目前比较主流的两种转pdf的方式&#xff0c;就是pdfbox和icepdf&#xff0c;两种我都尝试了下&#xff0c;icepdf解析出来有时候会出现中文显示不出来&#xff0c;网上的解决方式又特别麻烦&#xff0c;不是安装字体&#xff0c;就是重写底层类&#xff0c;所以我选择了p…