一、 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 GroupApache2modules下。
在$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。