Tomcat运维

news2024/10/6 14:35:37

目录

一、Tomcat简介

二、系统环境说明

1、关闭防火墙,selinux

 2、安装JDK

3、安装Tomcat

三、Tomcat目录介绍

1、tomcat主目录介绍

2、webapps目录介绍

3、Tomcat配置介绍(conf)

4、Tomcat的管理

四、Tomcat 配置管理页面(了解)

server.xml配置文件

五、WEB站点部署

1、使用war包部署web站点

2、自定义默认网站目录

六、Tomcat多实例配置

 1、复制程序文件

2、启动tomcat多实例

3、负载均衡配置


一、Tomcat简介

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

Tomcat和Nginx、Apache(httpd)、Web服务器一样,具有处理HTML页面的功能不过Tomcat处理静态HTML的能力不如Nginx/Apache服务器。

  一个tomcat默认并发是200(官方),可以修改,但实际用的时候也就200并发左右。

使用方案:

建议使用Nginx和Tomcat配合,Nginx处理静态,Tomcat处理动态程序 方案三中后端Tomcat可以运行在单独的主机,也可以是同一台主机上的多实例

Tomcat官网:

Tomcat好帮手---JDK

 JDK是 Java 语言的软件开发工具包,JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

JDK下载面页:

Java Downloads | Oracle

 安装时候选择tomcat软件版本要与程序开发使用的版本一致。jdk版本要进行与tomcat保持一致。

二、系统环境说明

1、关闭防火墙,selinux

systemctl stop firewalld && setenforce 0

 2、安装JDK

上传jdk1.8到服务器。安装jdk

tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk1.8.0_191  /usr/local/jdk
echo "export PATH=/usr/local/jdk/bin:$PATH" >> /etc/profile
source /etc/profile

3、安装Tomcat

创建一个目录用于存放tomcat

mkdir /data/application -p

cd
 
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz --no-check-certificate

tar xzf apache-tomcat-8.5.49.tar.gz -C /data/application/

cd /data/application/

mv apache-tomcat-8.5.49/ tomcat

设置环境变量

echo "export PATH=/data/application/tomcat/bin:$PATH" >> /etc/profile

source /etc/profile

三、Tomcat目录介绍

1、tomcat主目录介绍

2、webapps目录介绍

3、Tomcat配置介绍(conf)

4、Tomcat的管理

 

我们已经设置了环境变量所以直接 : startup.sh 启动  shutdown.sh 关闭

但是如果布置多个实例,就要去对应的tomcat包里面启动和关闭 

注意:tomcat未启动的情况下使用shutdown脚本,会有大量的输出信息。  

端口:

8005:这个端口负责监听关闭Tomcat的请求 shutdown:向以上端口发送的关闭服务器的命令字符串。

8009: 与其他http服务通信接口。(也可以没有)

8080: 建立http也就是客户端访问连接用。可以修改

 查看日志:

tail -f /data/application/tomcat/logs/catalina.out

扩展:解决Tomcat启动慢的方法

Tomcat启动慢主要原因是生成随机数的时候卡住了,导致tomcat启动不了。
yum install rng-tools # 安装rngd服务(熵服务,增大熵池)
systemctl start rngd  # 启动服务

四、Tomcat 配置管理页面(了解)

vim /usr/local/tomcat/conf/tomcat-users.xml 

 添加:(</tomcat-users> #一定要包含在这个标签"里面")

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="user" password="password" roles="tomcat,manager-gui,manager-script,admin-gui,admin-script"/>
vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml 

vim /usr/local/tomcat/webapps/manager/META-INF/context.xml 

修改为如图所示:

server.xml配置文件

主配置文件 server.xml
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <!--
  port: 指定用于接受关闭命令的端口号
  shutdown: 指定关闭命令,可自定义,与启动脚本中的命令相对应
  -->

  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!--
  Listener: 用于配置全局监听器,此处为使用APR库进行性能优化的监听器
  className: 监听器类的完全限定名
  SSLEngine: 指定是否启用SSL引擎
  -->

  <Listener className="org.apache.catalina.core.JasperListener" />
  <!--
  Listener: JSP引擎的监听器,用于编译和加载JSP页面
  className: 监听器类的完全限定名
  -->
  <GlobalNamingResources>
      <!--
      全局命名资源的配置部分,这里包含了一个可编辑的用户数据库的资源配置
      -->

      <Resource name="UserDatabase" auth="Container"
                type="org.apache.catalina.UserDatabase"
                description="User database that can be updated and saved"
                factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                pathname="conf/tomcat-users.xml" />
      <!--
      Resource: 定义了一个资源
      name: 资源的名称,这里为"UserDatabase"
      auth: 认证方式,Container表示使用容器的身份验证
      type: 资源的类型,这里为"org.apache.catalina.UserDatabase"
      description: 资源的描述信息
      factory: 创建资源的工厂类的完全限定名
      pathname: 用户数据库文件的路径,这里为"conf/tomcat-users.xml"
      -->
  </GlobalNamingResources>


  <Service name="Catalina">
    <!--
    Service: Tomcat服务的配置
    name: 服务名称
    -->

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <!--
    Connector: 配置用于接受HTTP请求的连接器
    port: 监听的端口号
    protocol: 使用的协议
    connectionTimeout: 连接超时时间
    redirectPort: 重定向端口,用于HTTPS连接
    -->

    <!-- 其他连接器的配置 -->

    <Engine name="Catalina" defaultHost="localhost">
      <!--
      Engine: Web容器引擎的配置
      name: 引擎名称
      defaultHost: 默认的主机名
      -->

      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!--
        Realm: 安全领域的配置
        className: 安全领域实现类的完全限定名
        -->

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
        <!--
        嵌套的Realm配置,这里使用UserDatabaseRealm作为默认的安全领域
        resourceName: 资源名称,对应于conf/tomcat-users.xml文件中的UserDatabase
        -->

      </Realm>

      <Host name="localhost" appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <!--
        Host: 虚拟主机的配置
        name: 主机名
        appBase: Web应用程序的基础路径
        unpackWARs: 是否自动解压部署的WAR文件
        autoDeploy: 是否自动部署Web应用程序
        -->

        <!-- 其他虚拟主机的配置 -->

        <Valve className="org.apache.catalina.valves.AccessLogValve"
               directory="logs" prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        <!--
        Valve: 用于记录访问日志
        className: 完全限定名
        directory: 日志存储的目录
        prefix: 日志文件名的前缀
        suffix: 日志文件名的后缀
        pattern: 日志格式
        -->

      </Host>

      <!-- 其他虚拟主机的配置 -->

    </Engine>
  </Service>
</Server>

Connector主要参数说明

port:指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。
protocol:连接器使用的协议,支持HTTP和AJP。AJP(Apache Jserv Protocol)专用于tomcat与apache建立通信的.
redirectPort:指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
maxThreads:接收最大请求的并发数
connectionTimeout  指定超时的时间数(以毫秒为单位)

 host参数详解

host:表示一个虚拟主机
name:指定主机名
appBase:应用程序基本目录,即存放应用程序的目录.一般为appBase="webapps",相对于CATALINA_HOME而言的,也可以写绝对路径。
unpackWARs:如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
autoDeploy:在tomcat启动时,是否自动部署 

五、WEB站点部署

上线的代码有两种方式:

第一种方式是直接将程序目录放在webapps目录下面,这种方式大家已经明白了,就不多说了。(放在webapps目录下的ROOT目录里面,浏览器访问ip:8080后面不需要指定目录,否则访问需要指定,例如:ip:8080/jenkins)

第二种方式是使用开发工具将程序打包成war包,然后上传到webapps目录下面。(这种会自动解压缩)

1、使用war包部署web站点

wget http://updates.jenkins-ci.org/download/war/2.129/jenkins.war
cd /data/application/tomcat   #进入tomcat目录
cp -r webapps/ /opt/    #将原来的发布网站目录备份
cd webapps/
rm -rf *    #清空发布网站里面的内容
cp /root/jenkins.war .   #将war包拷贝到当前目录

关闭服务,手动解压 unzip jenkins.war  完了在启动服务

#这里配置上传大于50M的文件 

/usr/local/tomcat/webapps/manager/WEB-INF/web.xml
    <!-- 50 MiB max -->

2、自定义默认网站目录

 修改默认发布目录:

mkdir /data/application/webapp  #创建发布目录
vim /data/application/tomcat/conf/server.xml

将原来的:

改为: 

然后重启服务(先关闭,再启动),把war包拷贝到新的发布目录,它会自动解压缩 

六、Tomcat多实例配置

多实例(多进程):同一个程序启动多次,分为两种情况:

第一种:一台机器跑多个站点;

第二种:一个机器跑一个站点多个实例,配合负载均衡

 1、复制程序文件

cd /data/application/
cp -r tomcat/ tomcat_2

#修改端口,以启动多实例。多实例之间端口不能一致

sed -i 's#8005#8012#;s#8080#8082#' tomcat_2/conf/server.xml

echo 8081 >> tomcat/webapps/ROOT/index.jsp 
echo 8082 >> tomcat_2/webapps/ROOT/index.jsp

2、启动tomcat多实例

去各自tomcat里面启动

3、负载均衡配置

 下载一个nginx

upstream testweb {
	server 192.168.50.114:8081 weight=1 max_fails=1 fail_timeout=2s;
	server 192.168.50.114:8082 weight=1 max_fails=1 fail_timeout=2s;
}
   server {
    listen       80;
    server_name  localhost;
    access_log  /var/log/nginx/proxy.access.log  main;

    location / {
       proxy_pass http://testweb;
       proxy_set_header Host $host:$server_port;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }       
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    } 
}

配置完检查语法,然后开启,直接浏览器访问ip,无需指定端口 

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

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

相关文章

分享 7 个最佳短信恢复应用程序,帮助恢复已删除短信

对于 Android 用户来说&#xff0c;丢失重要短信可能是一种令人沮丧的经历。幸运的是&#xff0c;有许多短信恢复应用程序可以帮助恢复丢失或删除的短信。在本文中&#xff0c;我们将与您分享 7 个最佳短信恢复应用程序&#xff0c;并帮助您找到可用于恢复已删除消息的最佳应用…

新能源+储能新模式 新创新

新型储能技术的兴起主要原因是&#xff1a;187.210.98.782 能源需求增长&#xff1a;随着全球人口和经济的增长&#xff0c;对能源的需求量也在不断上升&#xff0c;传统的化石燃料资源日益减少&#xff0c;因此需要开发新型的可再生能源和储能技术。 环境保护要求&#xff1a…

2024年生物技术与医学科学国际学术研讨会(ISBAMS 2024)

2024年生物技术与医学科学国际学术研讨会&#xff08;ISBAMS 2024&#xff09; 重要信息 会议官网&#xff1a;http://www.isbams.com会议地址&#xff1a;上海召开日期&#xff1a;2024/2/20截稿日期&#xff1a;2024/2/10 &#xff08;先投稿&#xff0c;先审核&#xff0c;先…

股票交易维度和概念

股票&#xff1a;股份公司为筹集资金而发行给各个股东作为持股凭证并借以取得股息和红利的一种有价证券 好处&#xff1a;分红、送股配股、交易收益、本金少、易变现、避免货币贬值 金融标的投资风险与收益 股票分类 蓝筹股 经营业绩长期稳定增长的大公司&#xff0c;一般是…

数据分析 - python 数据处理

数据处理 去除重复数据 # 删除重复值 保留重复行 第一行的数据 data.drop_duplicates(inplaceTrue, keepfirst)数据格式转化 日期格式化 data[order_date] pd.to_datetime(data[order_dt], format%Y%m%d)data[销售时间] pd.to_datetime(data[销售时间]) # 交货时间 销售…

Apache Shiro 安全框架

前言 Apache Shiro 是一个强大且容易使用的Java安全矿建&#xff0c;执行身份验证&#xff0c;授权&#xff0c;密码和会话管理。使用Shiro的易于理解的API您可以快速轻松的获得任何应用程序直到大的项目。 一丶什么是Shiro 1.Shiro是什么 Apache Shiro是一个强大且易于使用…

RabbitMQ简单模式和工作模式

RabbitMQ 是一个消息队列中间件&#xff0c;用于在分布式系统中进行消息传递。在 RabbitMQ 中&#xff0c;有几种工作模式&#xff0c;其中简单模式和工作模式是其中两种基本的模式之一。 简单模式&#xff08;Simple Mode&#xff09;&#xff1a; 在简单模式中&#xff0c;有…

找不到d3dx9_43.dll怎么办?有什么方法能解决这个问题

d3dx9_43.dll 是一个与 Microsoft DirectX 9.0c 版本相关的动态链接库&#xff08;DLL&#xff09;文件。DirectX 是由微软开发的一个应用程序接口&#xff08;API&#xff09;&#xff0c;用于处理多媒体相关任务&#xff0c;尤其是在游戏和高性能图形应用中。具体到 d3dx9_43…

我的隐私计算学习——联邦学习(5)

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具&#xff0c;经由自己阅读后整理而成。 &#xff08;七&#xff09;联邦迁移学习 ​ 相关研究表明&#xff0c;联邦迁移学习不需要主服务器作为各参与方间的协调者&#xff0c;旨在让模型具备举一反三能力&#xff0c;在…

C++ 11 多线程库初步学习

在C11标准中&#xff0c;可以简单通过使用thread库&#xff0c;来管理多线程。 thread库可以看做对不同平台多线程API的一层包装&#xff1b;因此使用新标准提供的线程库编写的程序是跨平台的。 使用时需要#include <thread>头文件&#xff1b; #include <iostream&g…

【SpringCloud Nacos】 微服务治理介绍及Nacos引入初体验

文章目录 前言服务治理介绍什么是服务治理1、服务发现2、服务配置3、服务健康检测 常见的注册中心ZookeeperEurekaConsulNacos Nacos 简介Nacos 实战入门搭建nacos环境1、安装nacos2、配置nacos3、访问nacos 将商品微服务注册到 nacos1、在 pom. xml 中添加 nacos 的依赖2、在主…

Pycharm2023.3.2使用conda创建工程

1 conda环境 举个例子&#xff0c;创建一个环境&#xff0c;名叫Pytorch&#xff0c;使用的python版本是3.7 &#xff08;1&#xff09;创建环境 conda create -n Pytorch python3.7&#xff08;2&#xff09;激活环境 conda activate Pytorch&#xff08;3&#xff09;查看…

小型商用机器人,如何做到小而强?

兼顾体型和性能。 体型和性能的矛盾 一直以来&#xff0c;商用清洁机器人的应用场景主要集中在大型商场、超市、写字楼等&#xff0c;为什么1000平米以下的小型商超等中小场景却很少涉足&#xff1f;原因可以说有很多&#xff0c;但核心为两方面&#xff0c;一方面&#xff0…

windows?linux?如何使用JMeter

windows?linux?如何使用JMeter 安装JMeter的步骤以GUI模式启动JMeter如何在非GUI模式下运行JMeter在linux中使用JMeter 安装JMeter的步骤 JMeter 是一个纯 Java应用程序&#xff0c;应该在任何具有兼容Java实现的系统上正确运行。 安装 JMeter 的步骤 步骤1&#xff09;安…

网络安全防御保护实验(一)

目录 一、规划ip地址 二、配ip地址 三、交换机和防火墙的配置 四、进行测试 实验要求&#xff1a;防火墙向下使用子接口连接生产区和办公区&#xff0c;所有分区设备可以ping通网关。 一、规划ip地址 二、配ip地址 三、交换机和防火墙的配置 四、进行测试

IP被封怎么办?访问网站时IP被阻止?解决IP禁令全方法

相信很多人遇到过IP禁令&#xff1a;比如你在访问社交媒体、搜索引擎或电子商务网站时会被限制访问&#xff0c;又或者你的的账号莫名被封&#xff0c;这些由于网络上的种种限制我们经常会遭遇IP被封的情况&#xff0c;导致无法使用继续进行网络行动。在本文中&#xff0c;我们…

Android开发修炼之路——(一)Android App开发基础-1

本文介绍基于Android系统的App开发常识&#xff0c;包括以下几个方面&#xff1a;App开发与其他软件开发有什么不一样&#xff0c;App工程是怎样的组织结构又是怎样配置的&#xff0c;App开发的前后端分离设计是如何运作实现的&#xff0c;App的活动页面是如何创建又是如何跳转…

scoped属性和深度选择器

在Vue单文件组件&#xff08;SFC&#xff09;中&#xff0c;为了防止样式全局污染&#xff0c;可以给 所有的scoped的css编译出来都会变成.class[哈希值]的形式 我们只能修改带data-v-0dca3a9a作用域的样式&#xff0c;像是 如果修改el-table的宽度 .el-table {width: 60…

惠友小课堂】拇外翻常见的几个误区,来看看你中了几个?

拇外翻作为常见的足部畸形&#xff0c;在日常生活中困扰着许多人。歪脚趾不仅外观不好看&#xff0c;还会出现疼痛、影响行走运动。但大多数人对于拇外翻的认识都不足常常落入认知误区&#xff0c;快来看看你中了几个&#xff1f; 误区一 Q 我都没穿过高跟鞋&#xff0c;怎么也…

科大讯飞 再次引爆Ai

去年「科大讯飞版ChatGPT」星火大模型刚上线的时候&#xff0c;小编给大家推荐过一波&#xff0c;演示了其强大的功能&#xff0c;不少小伙伴都立马申请体验了一把&#xff0c;有小伙伴还私信我说功能非常强大&#xff0c;工作效率提高不少&#xff0c;支持国产大模型之类赞扬。…