轻量级应用服务器——Tomcat

目录

Linux系统安装tomcat

配置文件介绍及核心组件

       配置文件

                安装目录下的配置文件

                conf子目录

        核心组件

                tomcat 处理请求过程

安装并配置jpress 

 虚拟主机的配置

Tomcat 配置文件参数优化()


    

    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器, 在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可 利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。 实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时, 它实际上作为一个与Apache 独立的进程单独运行的

        诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。 另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能, 另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。 不过,Tomcat处理静态HTML的能力不如Apache服务器。

Linux系统安装tomcat

首先需要安装jdk,因为tomcat是基于java开发的,需要Java环境,

Java Archive Downloads - Java SE 8

轻量级应用服务器——Tomcat_第1张图片

[root@localhost /opt]# rpm -ivh jdk-8u201-linux-x64.rpm

轻量级应用服务器——Tomcat_第2张图片

 解压后的目录在/usr/java/jdk1.8.0_201-amd64/

轻量级应用服务器——Tomcat_第3张图片

添加环境变量

[root@localhost /usr/java/jdk1.8.0_201-amd64]# vim /etc/profile

在行尾添加Java变量

export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH 

 刷新

[root@localhost /usr/java/jdk1.8.0_201-amd64]# source /etc/profile

查看是否安装成功

直接输入java

轻量级应用服务器——Tomcat_第4张图片

 或者java -version

 这就代表安装成功了

开始安装tomcat吧

我安装的是9.0.16版本,可以根据自己需要选择哦Linux

Index of /dist/tomcat/tomcat-9/v9.0.16/binhttps://archive.apache.org/dist/tomcat/tomcat-9/v9.0.16/bin/

为了我们方便使用,复制到/usr/local/tomcat 

[root@localhost /opt]# cp -rp apache-tomcat-9.0.16 /usr/local/tomcat

 开启/关闭tomcat服务

[root@localhost /opt]# cd /usr/local/tomcat/
[root@localhost /usr/local/tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@localhost /usr/local/tomcat]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost /usr/local/tomcat]#  /usr/local/tomcat/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

这样是不是感觉好麻烦,每次开启,都得进目录里修改非常不方便,我们可以做一个tomcat.service文件

创建tomcat用户


[root@localhost /usr/local/tomcat]# useradd -s /sbin/nologin tomcat

修改宿主宿组

[root@localhost /usr/local]# chown tomcat:tomcat tomcat/ -R

编辑tomcat.service文件

[root@localhost /usr/local]# vim /etc/systemd/system/tomcat.service

[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

重载

[root@localhost /usr/local]# systemctl daemon-reload

开启tomcat服务

[root@localhost /usr/local]# systemctl start tomcat.service

这样是不是熟悉多了

网页输入你的IP地址加8080端口

轻量级应用服务器——Tomcat_第5张图片

tomcat就安装成功了!!! 

配置文件介绍及核心组件

       配置文件

                安装目录下的配置文件

目录名字 功能
bin 存放启动和关闭 Tomcat 的脚本文件,比较常用的是 catalina.sh、startup.sh、shutdown.sh 三个文件
conf 存放 Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件。
lib 存放 Tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相对应的 jar 包
logs 存放 Tomcat 日志
temp 存放 Tomcat 运行时产生的文件
webapps 存放项目资源的目录
work Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到

                conf子目录

文件名 说明
server.xml 主配置文件
web.xml 每个webapp只有“部署"后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置,每个web应用也可以使用专用配置文件,来覆盖全局文件
context.xml 用于定义所有web应用均需加载的Context配置,此文件为所有的webapps提供默认配置,每个web应用也可以使用自已专用的配置,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中,覆盖全局的文件
tomcat-users.xml 用户认证的账号和密码文件
catalina.policy 当使用security选项启动omcat时,用于为tomcat设置安全策略
catalina.properties Tomcat环境变量的配置,用于设定类加载器路径,以及一些与JVM调优相关参数
ogging.properties Tomcat日志系统相关的配置,可以修改日志级别和日志路径等
注意配置文件对于大小写敏感

        核心组件

轻量级应用服务器——Tomcat_第6张图片

TIPS:

多实例:

多实例就是在一台服务器上同时开启多个不同的服务端口,同时运行多个服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务。

引擎:

一般而言,引擎是一个程序或一套系统的支持部分。常见的程序引擎有游戏引擎、搜索引擎、杀毒引擎等

名称 说明
server 服务器,Tomcat运行的进程实例,一个Server中可以有多个service,但通常就一个
service 服务,用来组织Engine和Connector的对应关系,一个service中只有一个Engine
connector 连接器,负责客户端的HTTP、HTTPS、AJP等协议连接。一个Connector只属于某一个Engine
Engine 即引擎,用来响应并处理用户请求。一个Engine上可以绑定多个Connector
Host 即虚拟主机,可以实现多虚拟主机,例如使用不同的主机头区分
Context 应用的上下文,配置特定url路径映射和目录的映射关系: url => directory

                tomcat 处理请求过程

  • Tomcat启动一个Server进程。可以启动多个Server,即tomcat的多实例,但一般只启动一个

  • 创建一个Service提供服务。可以创建多个Service,但一般也只创建一个

  • 每个Service中,是Engine和其连接器Connector的关联配置

  • 可以为这个Service提供多个连接器Connector,这些Connector使用了不同的协议,绑定了不同的端口。其作用就是处理来自客户端的不同的连接请求或响应

  • Service 内部还定义了Engine,引擎才是真正的处理请求的入口,其内部定义多个虚拟主机Host

  • Engine对请求头做了分析,将请求发送给相应的虚拟主机

  • 如果没有匹配,数据就发往Engine上的defaultHost缺省虚拟主机

  • Engine上的缺省虚拟主机可以修改

  • Host定义虚拟主机,虚拟主机有name名称,通过名称匹配

  • Context定义应用程序单独的路径映射和配置

        通常意义上的 Web 服务器接受请求后,只是单纯地响应静态资源,如 HTML 文件,图片 文件等,不能在后端进行一定的处理操作。 Tomcat 是 Apache 下的一个子项目,它具备 Web 服务器的所有功能,不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范 的 Java 代码 Servlet,同时将执行的结果以 HTML 代码的形式反回客户端。  

 Tomcat 由一系列的组件构成,其中核心的组件有三个:
1)Web 容器:完成 Web 服务器的功能。(https请求)
2)Servlet 容器:名字为 catalina,用于处理 Servlet 代码。(具体的任务)
3)JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码。

① Web容器 负责底层的HTTP协议

② Servlet容器
由catalina脚本帮忙处理的servlet代码,主要处理后端逻辑业务
catalina实际处理的是Servlet代码,而Servlet代码是由Java编写的

③ JSP容器(JAVA Scripts page)
JSP:在正常的html标签中嵌入一些java代码
这些JSP最终会被翻译成Servlet代码被执行
主要提供提供前端页面展示<% %>

安装并配置jpress 

JPress 是一个使用 Java 开发的、开源免费 的建站神器,灵感来源于 WordPress,目前已经有超过 10w+ 的网站使用 JPress 搭建,其中包括多个政府机构,200+上市公司,中科院、红十字会等。我们利用数据库,安装并使用它吧,jpress安装吧放到下面了

链接:https://pan.baidu.com/s/10T3sO7eV_3pbFL8p196qzw 
提取码:xbzs

下载完成后,做一个软链接

[root@localhost /usr/local/tomcat/webapps]# ln -s /usr/local/tomcat/webapps/jpress-v4.1.4 jpre
[root@localhost /usr/local/tomcat/webapps]# ls
apache-jmeter-5.1  docs  examples  host-manager  jpre  jpress-v4.1.4  jpress-v4.1.4.war  manager  ROOT
[root@localhost /usr/local/tomcat/webapps]# ll
总用量 69244
drwxr-xr-x.  8 root   root        138 2月  15 2019 apache-jmeter-5.1
drwxr-x---. 14 tomcat tomcat     4096 11月 15 13:49 docs
drwxr-x---.  6 tomcat tomcat       83 11月 15 13:49 examples
drwxr-x---.  5 tomcat tomcat       87 11月 15 13:49 host-manager
lrwxrwxrwx.  1 root   root         39 11月 15 14:41 jpre -> /usr/local/tomcat/webapps/jpress-v4.1.4
drwxr-x---.  6 tomcat tomcat       86 11月 15 14:40 jpress-v4.1.4
-rw-r--r--.  1 root   root   70900151 11月 15 14:35 jpress-v4.1.4.war
drwxr-x---.  5 tomcat tomcat      103 11月 15 13:49 manager
drwxr-x---.  3 tomcat tomcat      283 11月 15 14:01 ROOT

安装数据库,最好编译安装,yum安装的话可能不成功

 前面lamp文章有怎么编译安装mysql可以看看哦

安装成功后,创建一个空表

mysql> CREATE DATABASE xbin;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| sys                |
| xbin               |
+--------------------+

        进入网页输入8080后面跟你的软链接名,就会出现准备安装页面,不小心手快了没截图,其实很简单,就把表名写写,密码输输,下一步就好,最后出来的页面就放在下面了,你可以在上面写东西,挺不错的

轻量级应用服务器——Tomcat_第7张图片

 虚拟主机的配置

        可能有时候公司会有多个项目需要运行,那么肯定不可能是一台服务器上运行多个 Tomcat 服务,这样会消耗太多的系统资源。此时,就需要使用到 Tomcat 虚拟主机。例如现 在新增两个域名

www.xb.com www.xb2.com 希望通过这两个域名访问到不同的项目内容。

[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost /usr/local/tomcat/webapps]# mkdir xb xb2

分别在两个目录下创建.jsp文件

去网页测试

输入www.xb.com:8080

        www.xb2.com:8080

轻量级应用服务器——Tomcat_第8张图片

轻量级应用服务器——Tomcat_第9张图片

Tomcat 配置文件参数优化()

关于 Tomcat 主配置文件 server.xml 里面很多默认的配置项,但并不能满足业务需求, 常用的优化相关参数如下

【maxThreads】Tomcat 使用线程来处理接收的每个请求,这个值表示 Tomcat 可创建的最 大的线程数,默认值是 200。

【minSpareThreads】最小空闲线程数,Tomcat 启动时的初始化的线程数,表示即使没有 人使用也开这么多空线程等待,默认值是 10

【maxSpareThreads】最大备用线程数,一旦创建的线程超过这个值,Tomcat 就会关闭不 再需要的 socket 线程。默认值是-1(无限制)。一般不需要指定

【URIEncoding】指定 Tomcat 容器的 URL 编码格式,语言编码格式这块倒不如其它 Web 服务器软件配置方便,需要分别指定utf-8

【connnectionTimeout】网络连接超时,单位:毫秒,设置为 0 表示永不超时,这样设置 有隐患的。通常默认 20000 毫秒(20秒)就可以

【enableLookups】是否反查域名,以返回远程主机的主机名,取值为:true 或 false, 如果设置为 false,则直接返回 IP 地址,为了提高处理能力,应设置为 false。

【disableUploadTimeout】上传时是否使用超时机制。应设置为 true。

【connectionUploadTimeout】上传超时时间,毕竟文件上传可能需要消耗更多的时间, 这个根据你自己的业务需要自己调,以使 Servlet 有较长的时间来完成它的执行,需要 与上一个参数一起配合使用才会生效

【acceptCount】指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求 的最大队列长度,超过这个数的请求将不予处理,默认为 100 个。

【compression】是否对响应的数据进行 GZIP 压缩,off:表示禁止压缩;on:表示允许 压缩(文本将被压缩)、force:表示所有情况下都进行压缩,默认值为 off,压缩数据 后可以有效的减少页面的大小,一般可以减小 1/3 左右,节省带宽。

【compressionMinSize】表示压缩响应的最小值,只有当响应报文大小大于这个值的时候 才会对报文进行压缩,如果开启了压缩功能,默认值就是 2048

【compressableMimeType】压缩类型,指定对哪些类型的文件进行数据压缩。

【noCompressionUserAgents="gozilla, traviata"】对于以下的浏览器,不启用压缩

如果已经对代码进行了动静分离,静态页面和图片等数据就不需要 Tomcat 处理了,那 么也就不需要在 Tomcat 中配置压缩了。因为这里只有一台 Tomcat 服务器,而且压测的是 Tomcat 首页,会有图片和静态资源文件,所以这里启用压缩。

以上是一些常用的配置参数,还有好多其它的参数设置,还可以继续深入的优化,HTTP Connector 与 AJP Connector 的参数属性值,可以参考官方文档的详细说明进行学习。链 接 地 址 Apache Tomcat 9 Configuration Reference (9.0.54) - The HTTP Connectorhttp://tomcat.apache.org/tomcat-9.0-doc/config/http.html

你可能感兴趣的:(运维,tomcat,服务器,apache)