首页 > 其他分享 >Tomcat

Tomcat

时间:2023-11-16 09:47:46浏览次数:28  
标签:opt 10 Tomcat tomcat bin root tomcat8

一、tomcat是什么

Tomcat服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。

除此之外,Apache Tomcat还可以很容易与Apache Http Server.Nginx等知名的Web服务器集成,以实现负载均衡和集群化部署。现在已经被广泛用于开发、测试环境,甚至大规模、高并发的互联网产品部署。

Tomcat是Apache软件基金会(Apache Software Foundation)项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。

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

Tomcat和Nginx、Apache(httpd)、lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。

Tomcat处理静态HTML的能力不如Nginx/Apache服务器。

Java容器还有resin、weblogic等。

1.1 tomcat问答

a.什么是Tomcat

Tomcat和我们此前学习的 Nginx 类似,也是一个Web服务器。

b.Tomcat与Nginx有什么区别?

tomcat是一个java版的web服务器

Nginx仅支持静态资源,而Tomcat则支持Java开发的 jsp 动态资源和静态资源。

Nginx适合做前端负载均衡,而Tomcat适合做后端应用服务处理。

通常情况下,企业会使用 Nginx+tomcat 结合使用,由Nginx处理静态资源,Tomcat处理动态资源。

1.2 什么是JVM

JVM是Java Virtual Machine(Java虚拟机)的缩写

Java虚拟机本质是就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。

Java语言的可移植性正是建立在Java虚拟机的基础上。

任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。

这就是“一次编译,多次运行”。

1.3 JDK是什么

Tomcat运行必须得有java环境,这个JDK是:
Java Development Kit(JDK)sun公司对Java开发人员发布的免费软件开发工具包(SDK,Software development kit)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。

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

JDK包含了一批用于Java开发的组件,其中包括:
javac:编译器,将后缀名为.java的源代码编译成后缀名为“.class”的字节码
java:运行工具,运行.class的字节码
jar:打包工具,将相关的类文件打包成一个文件
javadoc:文档生成器,从源码注释中提取文档,注释需匹配规范
jdb debugger:调试工具
jps:显示当前java程序运行的进程状态
javap:反编译程序
appletviewer:运行和调试applet程序的工具,不需要使用浏览器
javah:从Java类生成C头文件和C源文件。这些文件提供了连接胶合,使Java和C代码可进行交互。
javaws:运行JNLP程序
extcheck:一个检测jar包冲突的工具
apt:注释处理工具 
jhat:java堆分析工具
jstack:栈跟踪程序
jstat:JVM检测统计工具
jstatd:jstat守护进程
jinfo:获取正在运行或崩溃的java程序配置信息
jmap:获取java进程内存映射信息
idlj:IDL-to-Java编译器。将IDL语言转化为java文件 
policytool:一个GUI的策略文件创建和管理工具
jrunscript:命令行脚本运行
JDK下载页面
http://www.oracle.com/technetwork/java/javase/downloads/index.html

二、Tomcat后端架构

image

Tomcat本身完全用Java语言开发,Tomcat目前可以和大部分Web服务器(IIS,Apache,Nginx)一起工作,且Tomcat是运行Java代码等容器。
常见用法是,nginx+tomcat,实现动静态请求分离。

Tomcat本身由一系列可配置等组件构成,核心组件是Servlet容器组件,Servlet就是一个用java语言开发,运行在服务器上的插件,用于解析动态的用户请求。

在使用java开发的公司,进行代码部署,常见做法是:
将Tomcat作为独立的Web服务器单独运行,Tomcat的运行必须依赖于Java虚拟机进程(Java Virtual Machine,JVM)进程。
JVM虚拟机解决了JAVA程序,可以运行在任何平台上,解决了可移植性。

image

三、安装Tomcat和JDK

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

3.1 安装jdk

1.下载安装包上传服务器
[root@tomcat-10 ~/tomcat-all]#ls
apache-tomcat-8.0.27.tar.gz  jdk-8u221-linux-x64.tar.gz

2.安装jdk
[root@tomcat-10 ~/tomcat-all]#tar -xf jdk-8u221-linux-x64.tar.gz -C /opt
[root@tomcat-10 ~/tomcat-all]#ls /opt
jdk1.8.0_221

配置软连接,修改PATH
[root@tomcat-10 ~/tomcat-all]#ln -s /opt/jdk1.8.0_221/ /opt/jdk8
sed -i.ori '$a export JAVA_HOME=/opt/jdk8\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile

检查PATH
[root@tomcat-10 ~/tomcat-all]#tail -3 /etc/profile
export JAVA_HOME=/opt/jdk8
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

生效
[root@tomcat-10 ~/tomcat-all]#source /etc/profile

[root@tomcat-10 ~/tomcat-all]#java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

3.2 安装tomcat

[root@tomcat-10 ~/tomcat-all]#ls
apache-tomcat-8.0.27.tar.gz  jdk-8u221-linux-x64.tar.gz
[root@tomcat-10 ~/tomcat-all]#tar -xf apache-tomcat-8.0.27.tar.gz -C /opt/
[root@tomcat-10 ~/tomcat-all]#ls /opt/
apache-tomcat-8.0.27  jdk1.8.0_221  jdk8
[root@tomcat-10 ~/tomcat-all]#ln -s /opt/apache-tomcat-8.0.27/ /opt/tomcat8

检查tomcat,是否识别了jdk

[root@tomcat-10 ~]#/opt/tomcat8/bin/version.sh
Using CATALINA_BASE:   /opt/tomcat8
Using CATALINA_HOME:   /opt/tomcat8
Using CATALINA_TMPDIR: /opt/tomcat8/temp
Using JRE_HOME:        /opt/jdk8
Using CLASSPATH:       /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.27
Server built:   Sep 28 2015 08:17:25 UTC
Server number:  8.0.27.0
OS Name:        Linux
OS Version:     3.10.0-862.el7.x86_64
Architecture:   amd64
JVM Version:    1.8.0_221-b11
JVM Vendor:     Oracle Corporation

3.3 tomcat目录介绍

程序根目录

[root@tomcat-10 ~]#ls /opt/tomcat8/
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work

drwxr-xr-x 2 root root  4096 Aug  3 03:05 bin  #主要包含启动、关闭tomcat脚本和脚本依赖文件  非常重要
drwxr-xr-x 3 root root   198 Aug  3 03:05 conf #tomcat配置文件目录          非常重要
drwxr-xr-x 2 root root  4096 Aug  3 03:05 lib  #tomcat运行需要加载的jar包    非常重要
-rw-r--r-- 1 root root 57011 Sep 28  2015 LICENSE #license文件,不重要
drwxr-xr-x 2 root root   197 Aug  3 03:15 logs  #在运行过程中产生的日志文件   非常重要
-rw-r--r-- 1 root root  1444 Sep 28  2015 NOTICE #不重要
-rw-r--r-- 1 root root  6741 Sep 28  2015 RELEASE-NOTES #版本特性,不重要
-rw-r--r-- 1 root root 16204 Sep 28  2015 RUNNING.txt   #帮助文件,不重要
drwxr-xr-x 2 root root    30 Aug  3 03:05 temp    #存放临时文件
drwxr-xr-x 7 root root    81 Sep 28  2015 webapps #站点目录   非常重要
drwxr-xr-x 3 root root    22 Aug  3 03:05 work    #tomcat运行时产生的缓存文件

站点目录

[root@tomcat-10 ~]#ls /opt/tomcat8/webapps/
docs  examples  host-manager  manager  ROOT

├── docs             # tomcat 帮助文档
├── examples         # web应用实例
├── host-manager     # 主机管理
├── manager          # 管理
└── ROOT             # 默认站点根目录

配置文件

[root@tomcat-10 ~]#ls /opt/tomcat8/conf/
catalina.policy  catalina.properties  context.xml  logging.properties  server.xml  tomcat-users.xml  tomcat-users.xsd  web.xml

├── catalina.policy
├── catalina.properties
├── context.xml
├── logging.properties
├── server.xml                    # tomcat主配置,例如更改端口等
├── tomcat-users.xml              # tomcat管理用户配置
├── tomcat-users.xsd
└── web.xml

管理脚本

[root@tomcat-10 ~]#ls /opt/tomcat8/bin/*.sh -l
-rwxr-xr-x 1 root root 21389 Sep 28  2015 /opt/tomcat8/bin/catalina.sh
-rwxr-xr-x 1 root root  1922 Sep 28  2015 /opt/tomcat8/bin/configtest.sh
-rwxr-xr-x 1 root root  7888 Sep 28  2015 /opt/tomcat8/bin/daemon.sh
-rwxr-xr-x 1 root root  1965 Sep 28  2015 /opt/tomcat8/bin/digest.sh
-rwxr-xr-x 1 root root  3547 Sep 28  2015 /opt/tomcat8/bin/setclasspath.sh
-rwxr-xr-x 1 root root  1902 Sep 28  2015 /opt/tomcat8/bin/shutdown.sh
-rwxr-xr-x 1 root root  1904 Sep 28  2015 /opt/tomcat8/bin/startup.sh
-rwxr-xr-x 1 root root  5061 Sep 28  2015 /opt/tomcat8/bin/tool-wrapper.sh
-rwxr-xr-x 1 root root  1908 Sep 28  2015 /opt/tomcat8/bin/version.sh

3.4 启动tomcat

优化jdk设置,加速tomcat启动
[root@tomcat-10 ~]#grep '^secure' /opt/jdk8/jre/lib/security/java.security 
securerandom.source=file:/dev/urandom
securerandom.strongAlgorithms=NativePRNGBlocking:SUN


[root@tomcat-10 ~]#/opt/tomcat8/bin/startup.sh 
Using CATALINA_BASE:   /opt/tomcat8
Using CATALINA_HOME:   /opt/tomcat8
Using CATALINA_TMPDIR: /opt/tomcat8/temp
Using JRE_HOME:        /opt/jdk8
Using CLASSPATH:       /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar
Tomcat started.

tomcat启动日志

[root@tomcat-10 ~]#tail -f /opt/tomcat8/logs/catalina.out 
....
17-Jul-2022 00:51:55.768 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /opt/apache-tomcat-8.0.27/webapps/manager has finished in 9 ms
17-Jul-2022 00:51:55.770 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
17-Jul-2022 00:51:55.774 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
17-Jul-2022 00:51:55.775 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 376 ms


检查端口
[root@tomcat-10 ~]#netstat -tunlp|grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2042/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2042/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      2042/java

3.4.1 访问tomcat

image

3.4.2 tomcat认证账密

tomcat默认提供的功能都需要设置账密认证,否则无法访问,默认没有账密。

如果需要开启这个功能,就需要配置管理用户,即配置tomcat-users.xml 文件。

[root@tomcat-10 /opt/tomcat8]#tail -5 conf/tomcat-users.xml 
 <role rolename="manager-gui"/>
 <role rolename="admin-gui"/>
 <user username="tomcat" password="www.yuchaoit.cn" roles="manager-gui,admin-gui"/>

</tomcat-users>

重启
[root@tomcat-10 /opt/tomcat8]#/opt/tomcat8/bin/shutdown.sh
Using CATALINA_BASE:   /opt/tomcat8
Using CATALINA_HOME:   /opt/tomcat8
Using CATALINA_TMPDIR: /opt/tomcat8/temp
Using JRE_HOME:        /opt/jdk8
Using CLASSPATH:       /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar

[root@tomcat-10 /opt/tomcat8]#/opt/tomcat8/bin/startup.sh 
Using CATALINA_BASE:   /opt/tomcat8
Using CATALINA_HOME:   /opt/tomcat8
Using CATALINA_TMPDIR: /opt/tomcat8/temp
Using JRE_HOME:        /opt/jdk8
Using CLASSPATH:       /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar
Tomcat started.

这回上述3个功能都可以输入账密访问了。

3.5 图解tomcat配置文件

image

一个Service可以包含多个Connector,但是只能包含一个Engine;
其中Connector的作用是从客户端接收请求
Engine的作用是处理接收进来的请求。

image

四、tomcat部署java网站

tomcat部署代码的方式有两种:

开发打包好的代码,直接放在webapps目录下
使用开发工具将程序打包成war包,再传到webapps目录下

jpress官网:http://jpress.io
下载地址:https://github.com/JpressProjects/jpress

4.1 war包部署

1.安装数据库
yum install mariadb-server mariadb -y
systemctl start mariadb.service

2.配置数据库信息,创建库,存储数据
mysqladmin password www.yuchaoit.cn
mysql -uroot -pwww.yuchaoit.cn -e "create database jpress DEFAULT CHARACTER SET utf8;"

mysql -uroot -pwww.yuchaoit.cn -e "grant all on jpress.* to jpress@'localhost' identified by 'www.yuchaoit.cn';"

mysql -uroot -pwww.yuchaoit.cn -e "flush privileges;"

3.上传代码到tomcat的webappes目录,tomcat自动解压缩war包
还有一种部署方式就是,maven编译,基于jar包去运行。

[root@tomcat-10 /opt/tomcat8]#cd /opt/
[root@tomcat-10 /opt]#ls
apache-tomcat-8.0.27  jdk1.8.0_221  jdk8  jpress.war  tomcat8

[root@tomcat-10 /opt]#ls /opt/tomcat8/webapps/
docs  examples  host-manager  manager  ROOT
[root@tomcat-10 /opt]#cp /opt/jpress.war /opt/tomcat8/webapps/
[root@tomcat-10 /opt]#ls /opt/tomcat8/webapps/
docs  examples  host-manager  jpress  jpress.war  manager  ROOT
[root@tomcat-10 /opt]#ls /opt/tomcat8/webapps/jpress
META-INF  robots.txt  static  templates  WEB-INF

发现已经解压缩出了jpress目录

4.访问即可
http://10.0.0.10:8080/jpress/install

就和安装wordpress一个玩法,输入数据库信息,设置管理员账密
admin
www.yuchaoit.cn

4.2 maven部署

1. 安装java、maven编译环境
[root@tomcat-10 ~]#java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)


wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz --no-check-certificate
[root@tomcat-10 /opt]#tar -xf apache-maven-3.3.9-bin.tar.gz 

[root@tomcat-10 /opt]#echo 'export PATH=$PATH:/opt/apache-maven-3.3.9/bin' >> /etc/profile

[root@tomcat-10 /opt]#source /etc/profile

[root@tomcat-10 /opt]#mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /opt/apache-maven-3.3.9
Java version: 1.8.0_221, vendor: Oracle Corporation
Java home: /opt/jdk1.8.0_221/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

2.下载源码
git clone https://gitee.com/JPressProjects/jpress.git

3.编译
修改mvn的源为阿里源
[root@tomcat-10 /opt/apache-maven-3.3.9]#vim conf/settings.xml 
<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>


cd jpress
mvn clean package

4.查看jar包
[root@tomcat-10 /opt/jpress/starter/target/starter-4.0]#ls
config  jpress.bat  jpress.sh  jpress-start.bat  jpress-stop.bat  lib  webapp


5.启动
修改启动地址为0.0.0.0
vi /opt/jpress/starter/target/starter-5.0/jpress.sh

JAVA_OPTS="-Dundertow.port=8080 -Dundertow.host=0.0.0.0 -Dundertow.devMode=false"
# 修改启动方式为后台运行并且将信息输出到 output.log 文件
# 注释以下的行
# java -Djava.awt.headless=true -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} &
# 打开以下的行,改为后台运行,日志写入nohup.log
nohup java -Djava.awt.headless=true -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} > output.log &


# 别忘记把tomcat停了,因为目前通过java去启动,内置了tomcat
[root@tomcat-10 /opt/jpress/starter/target/starter-4.0]#/opt/tomcat8/bin/shutdown.sh 

[root@tomcat-10 /opt/jpress/starter/target/starter-4.0]#./jpress.sh  start
[root@tomcat-10 /opt/jpress/starter/target/starter-4.0]#nohup: redirecting stderr to stdout

[root@tomcat-10 /opt/jpress/starter/target/starter-4.0]#tail -f output.log

JbootApplication { name='jboot', mode='dev', version='3.15.3', proxy='cglib', listener='*', listenerPackage='*' }
JbootApplication ClassPath: /opt/jpress/starter/target/starter-4.0/config/
Starting JFinal 5.0.0 -> http://0.0.0.0:80
Info: jfinal-undertow 3.0, undertow 2.2.17.Final, jvm 1.8.0_221
Jboot LoggerFactory: org.apache.logging.slf4j.Log4jLoggerFactory
Starting Complete in 1.1 seconds. Welcome To The JFinal World (^_^)

JbootResourceLoader started, Watched resource path name : webapp

标签:opt,10,Tomcat,tomcat,bin,root,tomcat8
From: https://www.cnblogs.com/chunjeh/p/17835474.html

相关文章

  • CentOs安装Tomcat
    首先需要安转java下载Linux版本的Tomcat,jdk1.8最好安装Tomcat8,9和10没有装成功。ApacheTomcat®-ApacheTomcat9SoftwareDownloads右键复制链接使用wget下载下载后解压将tomcat移动到/usr/local启动Tomcat进入解压的tomcat的bin目录下cd/usr/local/apache-t......
  • JavaScript--tomcat的下载和使用
     tomcat的配置 项目打包经常打包成war包,war包放到webspps中可以自动解压 ......
  • 系统架构性能优化之Tomcat
    ......
  • IDEA中使用Tomcat的两种方式:集成本地Tomcat&使用Tomcat Maven插件
    一、前言在IDEA中创建完一个MavenWeb项目,并补齐了目录以后,准备使用Tomcat时,就需要在自己创建的项目中去部署Tomcat,前文已经介绍了如何创建MavenWeb,所以这里就不多加赘述,直接讲述部署Tomcat的方法二、集成本地Tomcat1.将本地Tomcat集成到Idea这种方法比较复杂,但是非常适用于tomca......
  • 安装并运行tomcat8
    ps:tomcat7对应jdk1.7 tomcat8对应jdk1.8 注意要对应自己的项目选择下载tomcat版本 1.软件商城搜索安装tokcat找到自己的tomcat的端口8023 给自己的服务器设置安全入栈规则  8023 给宝塔设置安全防火墙规则  使用服务器ip+port显示画面 说明to......
  • Tomcat登录进入manager管理等界面
    1conf/tomcat-users.xml添加如下内容:<rolerolename="admin-gui"/><rolerolename="manager-gui"/><rolerolename="manager-jmx"/><rolerolename="manager-script"/><rolerolename="manager-st......
  • 多tomcat配置
    /**多tomcat配置(举例两个更多以此类推)*/每个tomcat对应一个文件夹不能再tomcat文件夹下面建立文件夹再放一个tomcatvim/etc/profile在最后加入以下代码(前面不要留空格)##########firsttomcat##########CATALINA_BASE=/home/tomcat/hbManageCAT......
  • 关于LINUX权限(启动tomcat)-bash: ./startup.sh: Permission denied
    关于LINUX权限-bash:./startup.sh:Permissiondenied在执行./startup.sh,或者./shutdown.sh的时候,爆出了Permissiondenied,其实很简单,就是今天在执行tomcat的时候,用户没有权限,而导致无法执行,用命令chmod修改一下bin目录下的.sh权限就可以了chmodu+x*.sh在此执行,OK了。......
  • Tomcat8开启APR运行模式(centos6.5)
    安装apr1.5.2 #wgethttp://apache.fayea.com//apr/apr-1.5.2.tar.gz#tar-xzvfapr-1.5.2.tar.gz#cdapr-1.5.2#./configure--prefix=/usr/local/apr#make#makeinstall安装tomcat-native组件下载 http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.......
  • Linux下启动tomcat
    tomcat是随机启动的,所以在开启服务器的时候要手动开启tomcat,不然没法访问(网上说可以设置随着服务器开启而开启,我还不会妮。。。)1:找到tomcat安装路径[root@localhost~]# cd.. (返回上一级目录)[root@localhost/]# ls       (列出该目录下的所有文件)bin ......