1.WEB应用有很多,下面就两个典型的应用(管理页面和接口服务)做对比。
管理页面:多涉及到用户的登录和长时间的频繁操作处理,这些操作都集中在一个session中,建议采用长连接;
接口服务:比如常见的webservice,操作集中在很短时间内完成,不需要对session进行维护,建议采用短连接。
2.TOMCAT长短连接配置
TOMCAT长短连接配置,主要在server.xml中修改。
1)对于管理业务,涉及到session的维护,采用长连接配置如下:
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="1000" acceptCount="100"
useBodyEncodingForURI="true"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
redirectPort="8443" URIEncoding="UTF-8" />
2)对于接口服务,不涉及session的维护,采用短连接配置如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
maxThreads="1000"
acceptCount="100"
redirectPort="8443"
URIEncoding="UTF-8"
maxKeepAliveRequests="5"/>
3)原理:HTTP1.1默认采用长连接,需要去掉长连接的话,只需修改默认配置参数maxKeepAliveRequests,上面maxKeepAliveRequests="5"是指,意思是每个连接只响应5个请求,然后就shutdown连接.
3.Apache优化之KeepAlive(http://wenku.baidu.com/link?url=szoQzO_yrnz6dHV5vJsdlYJ0l72RESv-MwLEVdQGjGIueiQ5hDme3vTlNNBNDskU1Rwe8La6ZhSkNRnd3M4AzXROBCU8fjMeGqMn03-59Si)
1)KeepAlive是在HTTP1.1中定义的,用来保持客户机和服务器的长连接,通过减少建立TCP Session的次数来提高性能。
2)常用的配置参数有{KeepAlive, KeepAliveTimeout, MaxKeepAliveRequests}
KeepAlive是决定开启KeepAlive支持;
KeepAliveTimeout决定一 个KeepAlive的连接能保持多少时间,Timeout就尽快shutdown链接,若还有数据必须再建立新的连接了;
MaxKeepAliveRequests于KeepAliveTimeout相似,意思是服务多少个请求就shutdown连接。
3)对于KeepAlive的配置需要慎重,错误的参数可能导致严重的性能问题。
一个高负载的Server,如果建立的很多长连接将无法继续服 务新的连接。因此需要根据server的性质调整KeepAliveTimeout或是MaxKeepAliveRequests的值。
例如:你的网页上有三幅图画2个外部javascript,他们都存放在你自己的server上。因此将 MaxKeepAliveRequests设置为7比较合适。3幅图2个js各一个link,网页本身一个link,还有firefox传说中的 favicon.ico。当然还是要有KeepAliveTimeout的。如果客户机用了该死的IE并且设置了某个该死的选项,IE是不会向服务器发送 HEAD请求查看图片(或是其他资源)是否过期的,而是直接使用本地图片。这个时候服务器是不会计算Request的(因为压根就没有Request 嘛)。再如果只有MaxKeepAliveRequests参数,服务器会默认等待5秒才结束KeepAlive连接。
相关推荐
2. **NIO2连接器**:除了传统的BIO和NIO连接器,Tomcat 8.5还引入了NIO2连接器,它基于Java 7的File API改进,提供了更好的异步I/O处理能力,提升了并发性能。 3. **改进的安全性**:Tomcat 8.5增强了安全性,包括...
- **用途**: 存储Tomcat自带的应用程序及服务器所需的JAR文件。 - **子目录**: - `webapps`: 存放Tomcat自带的admin和manager应用程序,用于管理Tomcat-web服务。 - `lib`: 存放Tomcat服务器所需的JAR文件,这些...
- **配置 worker.properties**:创建一个 `worker.properties` 文件,定义 Apache 和 Tomcat 之间的连接。例如,你可以设置多个 Tomcat 实例(workers),分配权重,以及指定每个 worker 的 IP 地址和端口。 - **...
本文将详细介绍如何在Tomcat中配置和使用数据库连接池。 首先,我们需要将数据库驱动的JAR文件放入Tomcat的`common/lib`目录下。这是因为Tomcat的`common/lib`目录下的JAR文件会被所有Web应用程序共享,确保驱动...
- 配置Tomcat的server.xml文件,包括端口设置和连接器配置。 - 配置web.xml文件,介绍一些常见的配置选项和它们的用途。 4. **启动与验证** - 启动Tomcat服务器的命令和步骤。 - 验证安装是否成功,包括访问...
以下将详细讲解如何在Tomcat中配置SSL证书。 首先,了解SSL证书的基本概念。SSL证书包含了一个公钥和私钥对,用于在客户端(如浏览器)和服务器之间建立安全的加密连接。它通常由权威的证书颁发机构(CA)签发,以...
【标题】:“2-26-tomcat环境搭建与管理及实现jsp通过tomcat连接mysql” 【描述】:本文档将详细介绍如何搭建Tomcat服务器环境,管理Tomcat,并且讲解如何利用jsp通过Tomcat连接MySQL数据库。 【标签】:Tomcat, ...
【标题】"Tomcat 9.0.2" 是一个重要...在安装或配置Tomcat时,了解这些目录的用途是至关重要的。对于开发者来说,理解Tomcat的工作原理和配置方法是开发Java Web应用的基础,能够帮助他们更有效地调试和部署应用程序。
了解和掌握`tomcat-users.xml`、`server.xml`和`web.xml`等配置文件的内容和用途,对于管理和优化Tomcat服务器至关重要。对于开发者来说,理解这些配置有助于更好地调试和优化应用程序,提升服务器性能。
Apache Tomcat 7.0.52 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages...在使用过程中,理解各个组件的功能以及配置文件的用途,可以帮助你更好地管理和优化Tomcat服务器,提升应用性能。
6. **线程池管理**:Tomcat 8引入了NIO(非阻塞I/O)和Apr(Apache Portable Runtime)连接器,允许更高效地处理并发连接,提升了服务器的并发性能。 7. **管理工具**:Tomcat 8提供了web-based的管理控制台,管理...
通常包括`catalina.jar`(Tomcat Servlet容器实现)、`jakarta-regexp-X.Y.jar`(正则表达式支持)、`tomcat-coyote.jar`(Coyote连接器实现)等。 通过这种方式,Tomcat确保了不同Web应用之间以及Web应用与服务器...
当用户请求 JSP 或 Servlet 页面时,Apache Http 服务器通过连接器模块将请求发送到 Tomcat 连接器监听的服务端口,由连接器模块将请求发送到容器,处理后再将容器返回的处理结果返回给 Apache Http 服务器,最后由 ...
- 包括Tomcat核心库、连接器库以及其他扩展库等。 - 这些JAR文件对于确保Tomcat正常运行非常重要。 4. **/logs** - **位置**: `/logs` - **用途**: - 存放Tomcat的日志文件。 - 日志文件包括访问日志、错误...
使用Tomcat 9.0,开发者需要了解其配置文件的结构和用途,例如如何通过修改`server.xml`来设置端口、添加虚拟主机或调整连接器参数。同时,理解Servlet生命周期和JSP编译过程也是必要的。此外,Tomcat的安全性也很...
8. **JNDI与连接池**:理解Tomcat如何管理数据库连接,以及配置数据源。 9. **性能调优**:包括调整线程池大小、内存分配等优化策略。 10. **故障排除**:常见错误的解决方案,以及如何定位和解决问题。 综合以上...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而`Nginx`与`Tomcat`的结合在实现负载均衡配置方面扮演着重要角色。`Nginx`作为一个高性能的反向代理服务器和负载均衡器,常用于前端处理HTTP请求,将流量分发...
### Tomcat配置详解 #### Tomcat目录结构与用途 Tomcat是一种开源的轻量级Servlet容器,被广泛应用于Java Web应用程序的开发与部署环境中。理解Tomcat的目录结构及其功能对于管理和配置Tomcat至关重要。 - **/bin...