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.hqwc.cn/news/98521.html

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

相关文章

QT DAY6

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);socket new QTcpSocket(this);//如果连接服务器成功&#xff0c;该客户端就会发射一个connected的信号。//我们…

Unity制作下雨中的地面效果

Unity引擎制作下雨效果 大家好&#xff0c;我是阿赵。   之前介绍了Unity引擎里面通过UV偏移做序列帧动画的做法&#xff0c;这里再介绍一个进阶的用法&#xff0c;模拟地面下雨的雨点效果。 一、原理 最基本的原理&#xff0c;还是基于这个序列帧动画的做法。不过这里做一点…

【ES6】require、export和import的用法

在JavaScript中&#xff0c;require、export和import是Node.js的模块系统中的关键字&#xff0c;用于处理模块间的依赖关系。 1、require&#xff1a;这是Node.js中引入模块的方法。当你需要使用其他模块提供的功能时&#xff0c;可以使用require关键字来引入该模块。例如&…

Python之父加入微软三年后,Python嵌入Excel!

近日&#xff0c;微软传发布消息&#xff0c;Python被嵌入Excel&#xff0c;从此Excel里可以平民化地进行机器学习了。只要直接在单元格里输入“PY”&#xff0c;回车&#xff0c;调出Python&#xff0c;马上可以轻松实现数据清理、预测分析、可视化等等等等任务&#xff0c;甚…

陶氏公司将出席2023第二届中国汽车碳中和峰会

2023第二届中国汽车碳中和峰会将于10月19日-20日在上海举办。 本次峰会将为行业领导者、政策制定者和专家提供一个平台&#xff0c;讨论汽车行业减少碳排放的策略。专家们将从政策、供应链、ESG、替代能源解决方案、汽车材料创新、法律等不同领域分享碳中和与可持续策略。 通…

Java 几个基本数据类型长度

对 Java 来说&#xff0c;我们通常会有下面几个基本数据类型。 需要了解的一个定义是&#xff0c;一个字节&#xff08;byte&#xff09; 是 8 位&#xff08;Bit&#xff09;。 针对 Java 的所有数据类型&#xff0c;最小的是 1 个字节&#xff0c;最多的是 8 个字节 数据长…

C++的继承

1.继承的基本形式 1.还是举每次讲继承都会举得一个例子&#xff1a;老师和学生都有人类的共同信息----姓名&#xff0c;性别&#xff0c;身份证等等&#xff0c;而学生有学工号&#xff0c;课表。老师有上班时间等等&#xff0c;所以在类中就有了继承这一说&#xff0c;子类继…

vscode新建vue3文件模板

输入快捷新建的名字 enter 确认后在文件中输入以下内容 {// Place your snippets for vue here. Each snippet is defined under a snippet name and has a prefix, body and// description. The prefix is what is used to trigger the snippet and the body will be expand…

蚂蚁集团SQLess 开源,与内部版有何区别?

当我们使用关系型数据库时&#xff0c;SQL 是联系起用户和数据库的一座桥梁。 SQL 是一种高度非过程化的语言&#xff0c;当我们在编写SQL 时&#xff0c;表达的是想要什么数据&#xff0c;而不是怎么获取数据。因此&#xff0c;我们往往更关心SQL 有没有满足业务逻辑&#xff…

二叉树的前序遍历

目录 题目题目要求示例 解答方法一、实现思路时间复杂度和空间复杂度代码 方法二、实现思路时间复杂度和空间复杂度代码 题目 二叉树的前序遍历 题目要求 题目链接 示例 解答 方法一、 递归法 实现思路 使用递归依次将该结点的数据&#xff0c;该结点的左子树的数据&am…

vue3 封装千分位分隔符自定义指令

toLocaleString作用&#xff1a;在没有指定区域的基本使用时&#xff0c;返回使用默认的语言环境和默认选项格式化的字符串。可点击进入MDN查看 // 千分位分隔符指令 import { Directive, DirectiveBinding } from vueconst thousandSeparator: Directive {mounted(el: any, …

git中的cherry-pick和merge有些区别以及cherry-pick怎么用

git中的cherry-pick和merge在使用场景上有些区别: cherry-pick用于将另一个分支的某一次或几次commit应用到当前分支。它可以选择性地拉取代码修改。merge用于将两个分支合并成一个新分支。它会把整个分支上的所有修改都合并过来。 具体区别:cherry-pick通常用于将bug修复从发…