简介

Tomcat是一款免费、开放源代码的web应用服务器,是Apache软件基金会的一个核心开源项目,属于轻量级应用服务器,通常意义上的 web服务器接受请求后,只是单纯地响应静态资源,如 HTMI文件,图片文件等,不能在后端进行一定的处理操作。“Tomcat是 Apache 下的一个子项目,它具备 Web服务器的所有功能,不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范的Java代码Servlet,同时将执行的结果以HTML代码的形式写回客户端。

工作流程

当用户访问业务项目例如支付宝淘宝等,nginx负责静态页面的处理以及展示index.jsp这种动态页面,然后用户对网页进行注册或者支付等操作,修改了index.jsp文件中的java代码(这里我不知道对不对),而jsp容器无法执行文件中的servlet代码于是转交给servlet容器,由其中的catalina脚本进行翻译,翻译后转交给业务项目,然后业务项目通过其中的java代码对数据库进行调用,再然后一级一级返回,最终返回给用户。

安装

首先,tomcat运行需要依赖jdk编译器,所以先安装jdk,jdk用于将java源码文件转换为执行文件。

#通过rpm命令安装jdk编译器
rpm -ivh jdk-8u201-linux-x64.rpm
java -version                                   #查看java版本,由于开源版本可能对某些功能不兼容,所以需要修改版本
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)#设置jdk的环境变量,两种方法,一种是创建一个脚本文件,第二种进入/etc/profile.d文件中添加下面的几行
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64  #声明jdk的工作目录以及版本
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar  #声明可执行文件的tools工具和运行库的位置
export PATH=$JAVA_HOME/bin:$PATH               #声明java的环境变量目录
source /etc/profile.d/java.sh                   #重新加载这个环境变量脚本
java -version                                   #查看版本,发现已经变更
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

jdk安装好后,开始安装tomcat

#解压tomcat软件包并移动至/usr/local/tomcat目录下
tar zxvf apache-tomcat-9.0.16.tar.gz -C /opt
mv /opt/apache-tomcat-9.0.16/ /usr/local/tomcat#查看该目录
ls /usr/local/tomcat
bin           CONTRIBUTING.md  logs       RELEASE-NOTES  webapps
BUILDING.txt  lib              NOTICE     RUNNING.txt    work
conf          LICENSE          README.md  temp

tomcat下的目录说明:
bin:存放启动关闭tomcat的文件,常用的是catalina.sh(翻译java代码),startup.sh(启动脚本),shutdown.sh(关闭脚本)。

conf:存放tomcat服务的配置文件,常用的有server.xml(主配置文件)、context.xml、tomcat-users.xml、web.xml。

lib:存放tomcat服务的jar包,除非和第三方服务进行连接比如redis,否则不作修改。

logs:存放tomcat日志文件,tomcat会自动进行日志分割。

temp:存放tomcat运行产生的文件。

webapps:存放项目资源的目录。

work:tomcat的工作目录,清除tomcat缓存时会用到。

#创建软连接,方便一键启动关闭
ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/#启动tomcat
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.
#查看是否成功开启,tomcat的端口号是8080且由于与web服务的连接器是java支持的,所以服务显示的是java
netstat -natp |grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      48908/java

启动成功后,访问8080端口。

tomcat虚拟主机

当一台服务器需要运行多个项目时,需要用到虚拟主机(运行多个tomcat会极大的损耗服务器资源)。

#首先进入/etc/hosts文件中添加域名和地址的映射
vim /etc/hosts
192.168.214.215 www.shiki.com www.shiki1.com#再webapps目录下新建两个项目目录
mkdir /usr/local/tomcat/webapps/shiki
mkdir /usr/local/tomcat/webapps/shiki1
echo "this is shiki page\!" > /usr/local/tomcat/webapps/shiki/index.jsp
echo "this is shiki1 page\!" > /usr/local/tomcat/webapps/shiki1/index.jsp#进入tomcat的主配置文件,在配置文件中以host开头,host结尾表示一个项目
<!--开头   -->结尾表示注释。在148-150行的host项目中修改
vim /usr/local/tomcat/conf/server.xml
<Host name="www.shiki.com"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/shiki" path="" reloadable="true" />
</Host>
#在前一个项目后再添加一一个项目<Host name="www.shiki1.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/shiki1" path="" reloadable="true" /></Host>
#配置好后,保存退出,然后重启服务
#如果tomcat正在运行项目,那么关闭服务后需要等待一段时间再启动,目的是让项目都完全关闭,不然可能会出错。
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/loc
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.

分别访问www.shiki.com和www.shiki1.com

优化

tomcat默认的配置环境并不适合生产环境,会出现频繁的卡死报错等,所以要对tomcat进行优化。

#tomcat的优化:
maxThreads:Tomcat:这个值表示Tomcat可创建的最大的线程数,默认值是200。
minspareThreads:最小空闲线程数,Tomcat启动时的初始化的线程数,默认值是10。
maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值是-1(无限制)。
URIEncoding:指定Tomcat容器的URL编码格式。
connnectionTimeout:网络连接超时时间,单位:亳秒,设置为0表示永不超时,默认20000亳秒。
enableLookups:是否反查域名,以返回远程主机的主机名,取值为: true或false,如果设置为false,则直接返回IP地址。
disableUploadTimeout:上传时是否使用超时机制。
connectionUploadTimeout:上传超时时间,需要与上一个参数一起配合使用才会生效。
acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,默认为100个。
compression:是否对响应的数据进行GZIP压缩,压缩数据后可以有效的减少页面的大小,一般可以减小 1/3 左右。
compressionMinSize:表示压缩响应的最小值,如果开启了压缩功能,默认值就是2048。
compressableMimeType:压缩类型,指定对哪些类型的文件进行数据压缩。
noCompressionJserAgents= "gozilla,traviata":对于以下的浏览器,不启用压缩。
#进入配置文件
vim /usr/local/tomcat/conf/server.xml
minSpareThreads="50"     #设置线程数50
enableLookups="false"        #不进行反查域名
disableUploadTimeout="true"  #开启上传超时
acceptCount="300"            #排队长度为300个
maxThreads="500"         #最多可创建500个线程
processorCache="500"     #系统可缓存对象数量为500个
URIEncoding="UTF-8"          #指定URL编码格式为中文字符集
compression="on"         #开启gzip压缩
compressionMinsize="2048"    #最小压缩大小
compressableMimeType="text/html, text/xml,text/javascript, text/css, text/plain , image/gif , image/jpg, image/png"  #对于这些文件不进行压缩#最后重启服务
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
[root@www ~]# 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.

nginx+tomcat(反向代理+负载分担)

需要两台tomcat服务器,一台nginx服务器

#对第一台服务器进行配置
在webapps目录下创建一个test目录并编辑index.jsp文件
mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("动态页面1,http://www.test1.com");%>
</body>
<html>#进入配置文件修改hosts项目
vim /usr/local/tomcat/conf/server.xml
<Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="fales">
<Context docBase=“/usr/local/tomcat/webapps/test" path="" reloadable="true" />#然后重启服务
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
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.
#对第二台服务器进行配置
在webapps目录下创建一个test目录并编辑index.jsp文件
mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("动态页面2,http://www.test2.com");%>
</body>
<html>#进入配置文件修改hosts项目
vim /usr/local/tomcat/conf/server.xml
<Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="fales">
<Context docBase=“/usr/local/tomcat/webapps/test" path="" reloadable="true" />#然后重启服务
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
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.
#对nginx服务器进行配置
vim /usr/local/nginx/conf/ngixn.conf
#在http字段中添加
upstream tomcatserver {server 192.168.214.215:8080 weight=1;server 192.168.214.214:8080 weight=1;
}
在server字段中添加
location ~ .*\.jsp$ {proxy_pass http://tomcatserver;proxy_set_header HOST $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;set_real_ip_from 0.0.0.0/0;real_ip_header X-Forwarded-For;
}

访问192.168.214.215/index.jsp,可以发现指向不同的tomcat服务器

tomcat介绍:安装与优化相关推荐

  1. apache tomcat下32还是64_linux平台下Tomcat的安装与优化

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

  2. Tomcat介绍及性能优化

    一.Tomcat简单介绍: Sun公司创建了第一个Servlet容器,即Java Web Server,但JWS只是为了演示Servlet的相应功能,所以其性能很不稳定.与此同时,apache基金会组 ...

  3. linux平台下Tomcat的安装与优化

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

  4. Tomcat介绍 安装jdk 安装Tomcat

    一.Tomcat介绍 Tomcat Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他 ...

  5. TOMCAT 汤姆猫的 安装部署 优化

    文章目录 TOMCAT 介绍 tomcat 图标 Tomcat 示意图 来吧!展示! 下载地址 安装JDK 设置环境变量 解压Tomcat 让 systemctl 控制 tomcat tomcat 目 ...

  6. Tomcat安装及优化

    目录 概念 ​编辑JSP servlet java JDK:java development kit  (套件) JRE:java Runtime Enviroment JVM:java virtua ...

  7. Tomcat介绍和安装,以及tomcat的虚拟主机配置

    为什么Tomcat火了 Tomcat介绍 Tomcat核心组件 简述Tomcat处理请求过程 Tomcat目录机构 Tomcat安装 虚拟主机配置 Tomcat介绍 ●自从JSP发布之后,推出了各式各 ...

  8. Tomcat介绍、安装JDK、安装Tomcat

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

  9. Linux下tomcat安装及优化

    Tomcat官网:http://tomcat.apache.org/ Tomcat 是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,S ...

  10. 16.1 Tomcat介绍16.2 安装jdk16.3 安装Tomcat

    16.1 Tomcat介绍 16.2 安装jdk 安装 完后执行这个命令可以出现下图的信息,说明安装成功了 java -version 16.3 安装Tomcat 下载的是二进制包,不用编译,很方便 ...

最新文章

  1. Qunee for HTML5 在电力方面的应用
  2. android qq 进程保活,Android保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)...
  3. 3分钟练成SVN命令高手:SVN常用命令
  4. 《JS高级程序设计》PART3.对象基础
  5. 遍历children_589. N叉树的前序遍历
  6. 免费直播| TDD如何颠覆了我对开发的认知?
  7. sourceInsight4 破解笔记(完美破解)【转】
  8. 动态连接数据库及动态建立ODBC,DSN(ZT)
  9. 软件工程概论--课后作业1
  10. 拓端tecdat|R语言生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
  11. python中面向对象的ui_Python面向对象和图形用户界面(一)---- 面向对象
  12. 英伟达显卡不同架构_【英伟达NVIDIA显卡GPU架构核心代号名称一览】(截止到 2018·08)...
  13. PLC浏览器端机械动画仿真(nodejs、vue)
  14. 用python爬虫,pyinstaller写一个属于自己的彩虹屁生成器!(链接在文末自取)
  15. 如何在Excel中制作斜线
  16. ARM9开发板初体验----使用Uboot通过USB下载线烧写bin文件
  17. DIV+CSS三行两列经典布局
  18. 高精度GNSS定位的校正服务——状态域(SSR)校正和观测域(OSR)校正
  19. Demo( the fourth week)
  20. 医学图像预处理(四)—— 提取包含目标的切片(比如仅提取包含肿瘤或肝脏的切片)

热门文章

  1. [python之数据分析] 基础篇1- Numpy,Scipy,Matplotlib 快速入门攻略
  2. Linux使用scp在服务器之间远程传输复制文件和文件夹
  3. wifi ip地址租约处理
  4. 在Markdown编辑器中输入上标下标
  5. MyBatis Plus Generator 代码生成器 v3.5.x 案例,含校验、MapStruct、Swagger、QO、VO,自定义 FreeMarker 模板引擎
  6. Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念(转)
  7. 考试计算机输百分比符号,2012年计算机等级考试一级B考点详解(4)
  8. java vim编辑器的基本使用_vim编辑器之神的高效率使用
  9. vue自定义翻页组件
  10. 日语流行口语极短句2