東川印記

一本東川,笑看爭龍斗虎;寰茫兦者,度橫佰昧人生。

Apache+IIS+Tomcat【1】

2010年11月1日星期一



 

一、 Apache、IIS、 Tomcat的区别与联系

  1  IIS是应用服务器,解析asp,也能处理html;Apache是web服务器,只负责处理html ,

Apache通过添加模块可以支持asp,jsp,php; Tomcat是应用服务器,可以解析servlet。


  Apache的许多外挂功能是通过模块实现的,比如php、subversion等,安装这些功能时就需要向Apache中添加模块。看似很简单,向 httpd.conf 中添加下面这一行(以php为例):

LoadModule php5_module "php-5.1.2/php5apache2.dll"

LoadModule jk_module modules/mod_jk.dll      添加jsp模块

2. 可以将几个都集成在一起,如IIS + Apache+ Tomcat集成共用一个端口号

3 运行环境:

IIs 需要windows的环境;Apache可以在linux上应用;Tomcat 可以在linux环境上应用。

二 、IIS与Apache的优劣

 

1 费用:IIS是收费的,只能用在WINDOWS上;Apache是免费的,可以跨平台使用。

2 安装:IIS相对来讲安装比较容易。Apache就比较麻烦。

3 速度:一般Apache速度会比较快,适合使用PHP程序的用户,如果是ASP程序,用IIS就已经足够了,而且管理方便。容易安装。

4 稳定性:Apache稳定,IIS有时假死

IIS在实际使用中经常出现500错误,而且有的时候还会出现莫名其妙的假死现象。用户需要不定期的重新启动IIS服务才能保证网站的正常。

Apache在配置上比IIS要复杂,不过一经设置完毕就可以长期的工作。大型网站都使用Apache作为自己的WWW服务提供工具。Apache的所有配置都保存在配置文件中,使用时完全按照配置文件中记录的信息执行,一般不会发生莫名其妙的假死情况。

 

 

三、集成Tomcat和Apache,安装Apache的好处

 

Apache处理静态网页(html文件或者htm文件)比Tomcat来得快和稳定, Tomcat毕竟是servlet服务器,它处理静态的网页也和处理jsp等动态网页一样采用同样的技术,都有一个translate过程(这在tomcat的work中会留下痕迹),这加重了服务器的负担,是不必要的,如果建的是一个访问量有限的网站,只安装Tomcat就可以。

Apache很稳定,不少大型网站都用它,Tomcat出问题的几率大一些。

可以通过Apache把负载分担到多个Tomcat上,实现负载均衡 。

四、集成tomcat和apache

 

1 安装apache服务:将apache安装在此c盘下

 注意:在安装前查看本机是否安装IIS,由于Apache和IIS默认的端口都是80。

Apache若以默认端口号安装,则需要把IIS的端口号修改为其它不常用的号码(如:82)。

2 配置

 (1)在$apache_home/ conf目录下找到httpd.conf文件,将DocumentRoot和<Directory>修改为:

DocumentRoot "C:/Tomcat5.5/webapps/ROOT"

<Directory "C:/Tomcat5.5/webapps/ROOT">

以上配置是与tomcat指向同一目录。

(2)http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/mod_jk-1.2.27-httpd-2.0.63.so,将下载下来的文件mod_jk-1.2.27-httpd-2.0.63.so放到C:\Apache Group\Apache2\modules下。

在$apache_home/ conf目录下找到httpd.conf文件,在此文件的末尾加上以下语句:

 

# 装载mod_jk模块,用于处理Apache和Tomcat的连接

LoadModule jk_module modules/mod_jk-1.2.27-httpd-2.0.63.so

# 指出mod_jk模块工作所需要的工作文件workers.properties的位置

JkWorkersFile "C:/Tomcat5.5/conf/workers.properties"

# 模块工作日志的目录

JkLogFile "C:/Tomcat5.5/logs/mod_jk2.log"

# 记录日志的工作级别

JkLogLevel info

# 将所有servlet 和jsp请求通过Ajp13的协议送给Tomcat,让Tomcat来处理

JkMount /servlet/* ajp13

JkMount /*.jsp ajp13

配置完成后需重启apache。

 

(3) 在C:/Tomcat5.5/conf/下编辑文件workers.properties,代码如下:

# 让mod_jk模块知道Tomcat在何处

workers.tomcat_home=C:/Tomcat5.5

# 让mod_jk模块知道JDK在何处

workers.java_home=C:/jdk1.5.0_11

ps=\

# mod_jk的模块版本

worker.list=ajp13

# mod_jk的工作端口

worker.ajp13.port=8009

# 工作的主机,可以更改

worker.ajp13.host=localhost

worker.ajp13.type=ajp13

worker.ajp13.lbfactor=1

以上配置完成后重启服务,分别运行http://localhost:8080/index.jsp和http://localhost/index.jsp

查看配置是否成功。

 

五、在Windows Server下集成Apache、Tomcat和IIS

 

通过集成Apache、Tomcat和IIS使其共用都可共享80端口,一个端口同时支持Perl、PHP、ASP、JSP四种语言,集成后兼容性很好,性能也不错。

 

集成策略是:安装三个Web服务器,Apache负责支持perl和php,IIS负责支持asp,Tomcat负责支持jsp,通过Apache的proxy_module将三个服务器集成到一个80端口。

安装的方法是,先安装IIS、Apache和Tomcat,配置Apache使用80端口,Tomcat使用8080端口,IIS使用8081端口。

 

接着在Apache中修改httpd.conf文件,启用proxy_module和proxy_http_module,修改的内容是:

LoadModule proxy_module modules/mod_proxy.so
  LoadModule proxy_http_module modules/mod_proxy_http.so

 

 

然后在Apache的httpd.conf文件中增加如下几行:

ProxyPass /php !
  ProxyPass /asp/ http://localhost:8081/
  ProxyPassReverse /asp/ http://localhost:8081/
  ProxyPass /jsp/ http://localhost:8080/
  ProxyPassReverse /jsp/ http://localhost:8080/

 

 

将上述命令放在<VirtualHost>中,可以实现不同的虚拟主机使用不同的Web服务器,同一个端口同样可以跑多个Web Server。

 

id: 796818135
title: Apache+IIS+Tomcat【1】
publishTime: 1288585900540
classId: 88735822
moveForm: NONE

没有评论 :

发表评论