作者:201153蜡笔小新 | 来源:互联网 | 2014-05-28 10:53
一、Apache、IIS、Tomcat的区别与联系1IIS是应用服务器,解析asp,也能处理html;Apache是web服务器,只负责处理html,Apache通过添加模块可以支持asp,jsp,php;Tomcat是应用服务器,可以解析servlet。Apache的许多外挂功能是通过模块实现的,比如php
一、 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和修改为:
DocumentRoot "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/
|
将上述命令放在中,可以实现不同的虚拟主机使用不同的Web服务器,同一个端口同样可以跑多个Web
Server。