Web服务器-Tomcat

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

我们上一大章介绍了Kubernetes的知识,本章节我们进入中间件的讲解,这里会包含很多不同的类型组件,中间件的第一个大类我这里定义的是Web服务器。由于目前使用最广泛的Web服务器是Nginx,所以我们这里的讲解主要以Nginx服务器为主。

我们前面介绍两个Web服务器:Nginx和Apache,今天我们来介绍另外一个Web服务器:Tomcat。

互联网早期的网站大多都是ASP或者PHP的,少部分比较注重安全的网站会选择jsp,而这个jsp就是运行在Tomcat里面。

以前的网站很多都是集中在一起的,并不区分前端还是和后端。通过网页url就知道是什么语言,但是随着技术的迭代和进步出现了前后端分离,这个时候从url里面已经看不出来网站才有的什么语言。尤其是移动互联网的崛起让我们更加感知不到后端情况。

Tomcat介绍

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,它是实现Java Servlet和JavaServer Pages (JSP) 技术的一个开源软件。Tomcat服务器提供了可以运行Java Web应用程序的环境,它是一个轻量级、易于扩展的Web容器,

JDK安装

由于Tomcat是基于Java语言,所以我们需要先安装Java环境。这里有2个选:,一个是选择Oracle的官方JDK(比较麻烦的时候是需要注册才能下载);另外一个就是采用开源的Open-JDK(在大部分情况下,这2个是没区别的)。但是我也遇到过需要使用Oracle的JDK才能用的情况,我这里以最的简单的方式安装就选择Open-JDK。

图片

    #默认源有4个版本,可选,具体要根据应用程序需求来选择
    #我这里就以java8来安装
    yum -y install java-1.8.0-openjdk.x86_64

    出现这样则安装成功。

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

    Tomcat安装

    Tomcat的版本和JDK版本有关系的,我这里选了一个Tomcat9,为了加强理解,我这里选择使用二进制安装Tomcat。

    wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.104/bin/apache-tomcat-9.0.104.tar.gz
    tar xvf apache-tomcat-9.0.104.tar.gz 
    cd apache-tomcat-9.0.104
    ./bin/startup.sh 

    ​​​​​​​

    图片

    如果启动失败可以去查看日志./logs/catalina.out。常见的问题找不到JDK,尤其是当JDK是采用Oracle的官方JDK。

    Tomcat使用

    这里需要介绍WAR包和JAR包。WAR可以理解是前后端不分离的包,包含了应用程序,HTML,CSS等资源,他需要依赖Tomcat或者类似的Servlet容器(我见过jboss)中运行。而jar包则不依赖Web容器,只要有java环境就可以通过Java命令直接启动(也可以理解他里面自带了Tomcat)目前的Java主流框架java spring xxx 基本上都是采用jar包方式。

    同一个应用程序既可以打包成war包,也可以打包成jar包,具体看业务需求。

    这里我使用后面涉及到持续集成会用到一个软件Jenkins来测试Tomcat。​​​​​​​

    #该版本兼容tomcat9和jdk8 
    wget https://get.jenkins.io/war-stable/2.7.4/jenkins.war

    把这个文件放置到tomcat的webapps目录下,Tomcat会自动读取并解压。会产生如下日志。​​​​​​​

    18-Apr-2025 00:12:42.191 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/root/apache-tomcat-9.0.104/webapps/jenkins.war] has finished in [29] ms
    18-Apr-2025 00:13:02.194 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.undeploy Undeploying context [/jenkins]
    18-Apr-2025 00:13:02.196 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/root/apache-tomcat-9.0.104/webapps/jenkins.war]
    18-Apr-2025 00:13:06.540 INFO [Catalina-utility-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
    Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins
    18-Apr-2025 00:13:07.346 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/root/apache-tomcat-9.0.104/webapps/jenkins.war] has finished in [5,150] ms
    18-Apr-2025 00:13:07.735 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained Started initialization
    18-Apr-2025 00:13:07.746 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained Listed all plugins
    18-Apr-2025 00:13:09.319 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained Prepared all plugins
    18-Apr-2025 00:13:09.331 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained Started all plugins
    18-Apr-2025 00:13:09.375 INFO [pool-6-thread-1] jenkins.InitReactorRunner$1.onAttained Augmented all extensions
    18-Apr-2025 00:13:11.416 INFO [pool-6-thread-1] jenkins.InitReactorRunner$1.onAttained Loaded all jobs
    18-Apr-2025 00:13:11.468 INFO [Download metadata thread] hudson.model.AsyncPeriodicWork$1.run Started Download metadata
    18-Apr-2025 00:13:11.990 INFO [SSHD.init] org.jenkinsci.main.modules.sshd.SSHD.start Started SSHD at port 43031
    18-Apr-2025 00:13:11.990 INFO [pool-6-thread-2] jenkins.InitReactorRunner$1.onAttained Completed initialization

    图片

      #访问地址,自动解压成jenkins目录 http://192.168.31.127:8080/jenkins

      运维小路

      一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

      关注微信公众号《运维小路》获取更多内容。

      评论
      成就一亿技术人!
      拼手气红包6.0元
      还能输入1000个字符
       
      红包 添加红包
      表情包 插入表情
       条评论被折叠 查看
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值