Apache2.2.11+Tomcat6.0.18 整合与实战笔记、Tomcat的优化交流

简介:
     又要发这类环境配置随笔了,也不是俺对这些配置很感兴趣,只不过是在有当下部署问题和需求的时候,现解决一下,实属无奈。
这也就是业余和专业的区别吧。看来俺又专业些了。之前写过《 最新版 apache_2.2.11 与 apache-tomcat-6.0.18 集成方案 》这个方案是
以tomcat为主,把apache集成进来,但是效果并不是俺想要的,在正式需要使用的时候才发现这种方案达不到要求。很早前还有一些多端口和
多虚拟主机的随笔 Tomcat6 配置多虚拟主机,多域名绑定一IP  , Tomcat6.0 配置多端口访问  。这些都是学校资源紧张,需要一台服务器部署
多个项目才搞的。

                  为了提高网站的访问性能,我们往往会在服务器端选择合适的部署环境。最简单的就是一个tomcat了,但是在高并发的情况下,非常
容易当机。因为tomcat配置的不优化。我最早也没有注意这些细节,因为我知道一个项目的性能不是通过搭建环境体现的,而是算法的高效,代码实
现的合理性,以及数据库的合理使用,优化技术的使用等等。不过通过优化部署环境应该说是最直接的一种方案了。目前我知道的一种tomcat优化
方案是使用tomcat线程池。只需要在server.xml中改改配置就可以了。核心配置代码:

复制代码
     < Executor  name ="tomcatThreadPool"  namePrefix ="catalina-exec-"  
        maxThreads
="1000"  minSpareThreads ="50"  maxIdleTime ="600000" />
    
    
    
<!--  A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL HTTP/1.1 Connector on port 8080
    
-->
    
<!--
    <Connector port="8086" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8"/>
    
-->
    
<!--  A "Connector" using the shared thread pool -->

    
< Connector  executor ="tomcatThreadPool"
               port
="8080"  protocol ="HTTP/1.1"  
               connectionTimeout
="20000"  
               redirectPort
="8443"   />
复制代码

这样的性能响应能够高于默认配置不少。别的方案我还没有研究过,希望有这方面经验的朋友可以给出点建议。谢谢。
然后就是apache+tomcat的集成,我最早写的那个是围绕tomcat配置的。这次补充一个更方便也是更科学的实现,
围绕apache做集成。

需要下载的工具还是那三个,实现的第一步与我的上一篇是一样的。

1.将mod_jk-1.2.28-httpd-2.2.3.so复制到C:\Apache2.2\modules(我的apache安装目录),我把他改了下名,方便后面的操作

改名为mod_jk.so。

2.在tomcat的config目录下新建workers.properties 文件,内容如下:


复制代码
workers.tomcat_home=C:\Tomcat 
workers.java_home=C:\Program Files\Java\jre1.5.0_05

worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13 
worker.ajp13.lbfactor=1 
复制代码

3.在apache的httpd.conf的内容底部添加配置:

复制代码
LoadModule jk_module modules/mod_jk.so
JkWorkersFile "C:/Tomcat/conf/workers.properties"
JkLogFile "C:/Tomcat/logs/mod_jk2.log" 
JkLogLevel info

< VirtualHost  localhost >
ServerAdmin @hbu.cn
DocumentRoot D:/
ServerName localhost
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13 
JkMount /*.jsp ajp13 
JkMount /*.do ajp13 
</ VirtualHost >
复制代码


配置完毕,经测试apache将jsp,servlet,.do请求都交由tomcat处理。其他文件由apache处理,因为apache的稳定性和
安全性,以及相对于tomcat而言快速的静态页处理速度,也可以提高网站的负载能力,前提是网站的静态页比较多,例如做了静态化。

在上面最后的请求派发给tomcat是可以不断添加的。例如我做的站有FCKeditor,DWR,我就需要添加这两者的过滤。
格式保持一致,例如: JKMount /dwr/* ajp13。

这样由于apache和tomcat集成造成的功能出错就可以一一解决了。这就是一种较完美的集成方案。
一些静态请求由apache处理,动态请求由tomcat处理。

园子首页有一篇网站的发展过程,就是说数据库为什么要和网站分别部署在两台服务器上。做了一些考证,我觉得写的很不错,考虑了
读写和传输数据的速度,虽然数据基本是理论层次的。
俺最早也看过这方面的网站架构演变史。俺不太喜欢磨蹭,于是直接用最简练的话概述了。下面列举数字,由早到晚说说网站的发展过程。

1.一台服务器,数据库和网站都在这上面架着。我觉得在添加一台服务器之前应该先做以下尝试,毕竟比较费钱。
首先就是优化代码,重构和提炼算法。然后优化sql查询等等关于数据库的操作,合理的使用事务。建立数据库索引,
优化服务环境,关掉不必要的服务,优化搭载环境。其次静态化,缓存(页面片段缓存,数据库缓存,对象级缓存),
数据持久化。
2.网站与数据库分离,需要两台服务器。
3.搭载环境的负载均衡。分散请求,提高容错能力。
4.数据库集群
5.网站分布式,采取读写分离,网站很大比重的请求都是在查数据。
6.提高服务器的硬件配置。
7.还是不够的话,再增加服务器.........


本文转自施杨博客园博客,原文链接:http://www.cnblogs.com/shiyangxt/archive/2009/08/03/1537842.html,如需转载请自行联系原作者

相关文章
|
4月前
|
XML 前端开发 Java
SpringMVC入门到实战------2、SpringMVC创建实例Hello SpringMVC(maven+tomcat)
这篇文章是SpringMVC框架的入门教程,详细指导了如何在IDEA中使用Maven和Tomcat创建SpringMVC工程,包括添加依赖、配置web.xml、编写控制器、创建配置文件、配置Tomcat服务器以及进行基本的测试,展示了一个简单的Hello SpringMVC示例。
SpringMVC入门到实战------2、SpringMVC创建实例Hello SpringMVC(maven+tomcat)
|
1月前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
83 5
|
1月前
|
消息中间件 监控 大数据
优化Apache Kafka性能:最佳实践与调优策略
【10月更文挑战第24天】作为一名已经对Apache Kafka有所了解并有实际使用经验的开发者,我深知在大数据处理和实时数据流传输中,Kafka的重要性不言而喻。然而,在面对日益增长的数据量和业务需求时,如何保证系统的高性能和稳定性成为了摆在我们面前的一个挑战。本文将从我的个人视角出发,分享一些关于如何通过合理的配置和调优来提高Kafka性能的经验和建议。
84 4
|
3月前
|
监控 Java 应用服务中间件
部署tomcat部署实战案例
本文是关于Tomcat部署实战案例的教程,包括通过yum和二进制方式部署Tomcat的详细步骤,以及如何监控Tomcat服务。
215 84
部署tomcat部署实战案例
|
2月前
|
Java 关系型数据库 MySQL
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
这篇文章是关于自动化测试项目实战笔记,涵盖了JDK、Tomcat、MySQL、Jpress环境的安装和搭建过程,以及测试用例和常见问题总结。
53 1
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
|
2月前
|
SQL 分布式计算 NoSQL
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
36 1
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
|
2月前
|
消息中间件 存储 druid
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
48 3
|
2月前
|
存储 大数据 分布式数据库
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
47 1
|
2月前
apache+tomcat配置多站点集群的方法
apache+tomcat配置多站点集群的方法
39 4
|
2月前
|
SQL 存储 监控
大数据-161 Apache Kylin 构建Cube 按照日期、区域、产品、渠道 与 Cube 优化
大数据-161 Apache Kylin 构建Cube 按照日期、区域、产品、渠道 与 Cube 优化
63 0

推荐镜像

更多
下一篇
DataWorks