| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 轻量级应用服务器tomcat -> 正文阅读 |
|
[Java知识库]轻量级应用服务器tomcat |
目录 一,Tomcat简介1,简介Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器, 是Apache软件基金会(Apache software foundation)Jakarta项目中的一个核心项目 由Apache,Sun和一些公司及个人共同开发而成 深受Java爱好者的喜爱,并得到部分软件开发商的认可 是目前比较流行的web应用服务器 对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可 利用它响应 HTML(标准通用标记语言下的一个应用)页面的访问请求。 实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时, 它 实际上作为一个与Apache 独立的进程单独运行的 当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。 另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能, 另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。 不过,Tomcat处理静态HTML的能力不如Apache服务器。 2,Tomcat核心组件?Tomcat有一系列的组件构成,其核心组件有三个: 1)Web 容器:完成 Web 服务器的功能。(负责底层的HTTP协议 ) 2)Servlet 容器:名字为 catalina,用于处理 Servlet 代码。(由catalina脚本帮忙处理的servlet代码,主要处理后端逻辑业务catalina实际处理的是Servlet代码,而Servlet代码是由Java编写的) 3)JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码。(主要提供提供前端页面展示<% %>) ? 多实例: 多实例就是在一台服务器上同时开启多个不同的服务端口,同时运行多个服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务。 引擎: 一般而言,引擎是一个程序或一套系统的支持部分。常见的程序引擎有游戏引擎、搜索引擎、杀毒引擎等
? ?Tomcat处理请求的过程:
3,Tomcat配置文件安装目录下 文件介绍
conf子目录介绍
二,Tomcat的安装1,安装tomcat?[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile? ?#添加环境变量 ?[root@localhost jdk1.8.0_201-amd64]# source /etc/profile? #刷新配置文件 解压tar包 ?[root@localhost opt]# cp -r apache-tomcat-9.0.16 /usr/local/tomcat? #复制到/usr/local/tomcat目录 ? ?我们开启和关闭tomcat路径比较麻烦可以做tomcat.service [root@localhost tomcat]# vim /etc/systemd/system/tomcat.service #编写tomcat.service文件
可以在网页上测试 2,站点和主页文件优先级?Tomcat的站点在/usr/local/tomcat/webapps目录下 ?重新创建一个目录测试一下 ?登录测试 ?Tomcat的站点在/usr/local/tomcat/webapps目录下是平级的相当于一个个的项目。 主页文件的优先级
?可以在cat文件夹下创建三个主页文件测试优先级? 显示index.html的主页说明index.html的优先级最高 ?将ndex.html文件改名成ndex.html.bak在登录显示ndex.htm的主页说明ndex.htm优先级比ndex.jsp高 ? ?将ndex.htm改名为ndex.htm.bak在登陆出现ndex.jsp主页说明三个主页都可以登录index.jsp优先级最低 ? ?以上验证优先级ndex.html>ndex.htm>ndex.jsp 默认的优先级在/usr/local/tomcat/conf/web.xml中定义的 ?如果有的项目优先级需要调整可以在项目中调整优先级顺序 例:如果需要更改cat项目中的优先级顺序可以这样做 [root@localhost webapps]# ls [root@localhost webapps]# cd docs/ [root@localhost cat]# vim WEB-INF/web.xml #修改配置文件在最后插入需要的优先级(这里将index.htm的权限设为最高) ?将刚才更改的文件名再改回去 ?重新登录测试(优先级最高的是index.htm) ?3,打包jar包实际操作创建文件夹 ?[root@localhost app]# vim test.html
?[root@localhost app]# jar cvf /opt/app.war *? #将app目录下你的所有压缩成app.war ?将压缩包复制到指定目录下 ?压缩包会自动解压 ?登录测试 ?完成测试 ?三,虚拟主机配置可能有时候公司会有多个项目需要运行,那么肯定不可能是一台服务器上运行多个 Tomcat 服务,这样会消耗太多的系统资源。此时,就需要使用到 Tomcat 虚拟主机。例如现 在新增两个域名 www.test.com,www.accp.com希望通过这两个域名访问到不同的项目内 容。 ?修改配置文件 ??oot@localhost webapps]# systemctl restart tomcat.service? ?#重启tomcat服务 ?重新登陆一台机器 [root@localhost ~]# vim /etc/hosts? ?#修改hosts文件添加解析地址 登录测试访问不同的服务 测试成功 四,Tomcat配置文件参数优化关于 Tomcat 主配置文件 server.xml 里面很多默认的配置项,但并不能满足业务需求, 常用的优化相关参数如下 ?【maxThreads】Tomcat 使用线程来处理接收的每个请求,这个值表示 Tomcat 可创建的最 大的线程数,默认值是 20。 【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"】对于以下的浏览器,不启用压缩 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:44:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |