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,如需转载请自行联系原作者

相关文章
|
2月前
|
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月前
|
监控 Java 应用服务中间件
部署tomcat部署实战案例
本文是关于Tomcat部署实战案例的教程,包括通过yum和二进制方式部署Tomcat的详细步骤,以及如何监控Tomcat服务。
174 84
部署tomcat部署实战案例
|
2月前
|
Ubuntu Java 应用服务中间件
如何通过 Apt-Get 在 Ubuntu 14.04 上安装 Apache Tomcat 7
如何通过 Apt-Get 在 Ubuntu 14.04 上安装 Apache Tomcat 7
67 0
|
2月前
|
缓存 Java 应用服务中间件
SpringMVC入门到实战------七、SpringMVC创建JSP页面的详细过程+配置模板+实现页面跳转+配置Tomcat。JSP和HTML配置模板的差异对比(二)
这篇文章详细介绍了在SpringMVC中创建JSP页面的全过程,包括项目的创建、配置、Tomcat的设置,以及如何实现页面跳转和配置模板解析器,最后还对比了JSP和HTML模板解析的差异。
SpringMVC入门到实战------七、SpringMVC创建JSP页面的详细过程+配置模板+实现页面跳转+配置Tomcat。JSP和HTML配置模板的差异对比(二)
|
2月前
|
监控 Apache
Apache 工作模式的区别及优化
【8月更文挑战第22天】Apache 工作模式的区别及优化
50 0
|
2月前
|
Ubuntu Java 应用服务中间件
在Ubuntu 16.04上安装Apache Tomcat 8的方法
在Ubuntu 16.04上安装Apache Tomcat 8的方法
16 0
|
2月前
|
安全 Java 应用服务中间件
在CentOS 7上安装Apache Tomcat 8的方法
在CentOS 7上安装Apache Tomcat 8的方法
64 0
|
2月前
|
安全 Java 应用服务中间件
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
117 0
|
2月前
|
Java 应用服务中间件 Apache
在 Debian 服务器上安装和配置 Apache Tomcat 的方法
在 Debian 服务器上安装和配置 Apache Tomcat 的方法
26 0
|
2月前
|
网络协议 Java 应用服务中间件
tomcat配置域名及HTTPS
tomcat配置域名及HTTPS

推荐镜像

更多
下一篇
无影云桌面