CentOS平台搭建AMP环境并实现Apache与Tomcat整合
软件版本:Apache_2.2.9-win32-x86-no_ssl-r2.msi
Php-5.2.6-Win32.zip
Mysql-5.1.26-rc-win32.zip
安装目录:
D:/xmlinux/webapp
PHP配置:
(1)将D:"xmlinuxer"webapp"php5"目录下的libmysql.dll和php5ts.dll两个文件复制到C:"WINDOWS"system32"下;
(2)将D:"xmlinuxer"webapp"php5"ext"目录下的php_gb2.dll、php_mysql.dll及 php_mbstring.dll复制到C:"WINDOWS"system32"下;
(3)将D:"xmlinuxer"webapp"php5"中的php.ini-dest或php.ini-recommended重命名为php.ini复制到C:"WINDOWS"system32"下;
(4)改配置文件php.ini,具体包括:
i.extension_dir="/"改为 extension_dir = " F:/Program Files/PHP5.2/ext";
ii.去掉下面三个表达式前面的“;”,改后如下:
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
iii.;date.timezone = 修改为 date.timezone = PRC
Apache配置httpd.conf文件
加入支持php5和mysql的代码:
LoadFile D:/xmlinuxer/webapp/php5/libmysql.dll
LoadModule php5_module D:/xmlinuxer/webapp/php5/php5apache2_2.dll
PHPIniDir "D:/xmlinuxer/webapp/php5"
AddType application/x-httpd-php .php
整合Apache & Tomcat
方案一:mod_jk模块实现
适用于较低版本,在Apache2.2.*以后的的版本上无法成功实现Apache与Tomcat的整合,即使编译模块通过了的话(网上很多文档都是用这种方法的资料,而且都大同小异,我试过了。。。可以模块可以编译通过,但是其实根本实现不了,因为现在mod_jk模块最高版本只支持到Httpd-2.2.4版本的而已,所以对于Apache版本高一点就的话就根本没有mod_jk与之对应的模块实现)所以对此方案测试并不能成功实现。
方案二:mod_proxy代理模块实现
Apache2.2.*以上版本本身已经支持Tomcat了,所以这里用mod_proxy来整合Tomcat
打开httpd.conf文件,把
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
前面的#去掉, 并在文件最后添加
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
这样做的话就相当于Apache把所有80端口的请求都转发给了Tomcat的8009(ProxyPass / ajp://127.0.0.1:8009/ ;ProxyPassReverse / ajp://127.0.0.1:8009/),都由Tomcat处理请求,这时的Apache只相当于一个转发器的作用,由Tomcat解析。此时要是关闭Tomcat服务,再访问还会出现503 Service Temporarily Unavailable 错误!
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
但是我们想实现的是将请求中静态的页面交给Apache处理,动态请求交给Aomcat处理。因为他们在各自的处理效率上比较高,这才是整合Apache和Tomcat的真正目的作用。
这里要实现将html交给Apache处理,而把jsp转发给Tomcat处理。还需要多刚刚修改的httpd.conf进行完善,排除掉Tomcat对静态文件的解析过滤。
即在刚刚的 ProxyPass / ajp://127.0.0.1:8009 前面加入一行
ProxyPass /web/ !
插入这行配置的意思是表示/web/下的文件的请求不转发到Tomcat进行解析直接由Apache解析。此时只要把不想转发到Tomcat处理的放在Apache安装目录下\htdoc\ 下名为web文件夹里即可。
附录:
Mod-proxy的缺点是,当其中一台tomcat停止运行的时候,apache仍然会转发请求过去,导致502网关错误。但是只要服务器再启动就不存在这个问题。如果前置Apache代理服务器停止运行,所有集群服务将无法对外提供。
Mod-proxy优点是.可以只将Apache置于公网,节省公网IP地址资源。可以通过设置来实现Apache专门负责处理静态网页,让Tomcat专门负责处理JSP和servlet等动态请求。
参考资料:
IBM Developer Works中关于Apache HTTP Server 与 Tomcat 的三种连接方式介绍的描述[url]http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html[/url] 大哥, 这是CentOS平台 ?
我的CentOS平台怎么找不着D盘, 求解.......
页:
[1]