1.首先下载tomcat5.5.7并解压; 设置CATALINA_HOME环境变量指向tomcat路径;
2.使用APR使得Tomcat的性能提高
Windows下的安装配置
1)http://tomcat.heanet.ie/native/ 下载编译好的 tcnative-1.dll 文件,也可以下载tomcat-native.zip自己进行编译
2)把tcnative-1.dll文件放在Tomcat的bin目录下.
3.下载apache_2.2.4-win32-x86-no_ssl.msi并安装;
下载:http://apache.mirrors.tds.net/httpd/binaries/win32/apache_2.2.4-win32-x86-no_ssl.msi
4.因为apache2.2.4采用mod_proxy连接apache与tomcat,所以配置非常简单。这里我们只需要改动D:\WEBSERVER\Apache2.2\conf\ 下的 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/
5.测试:
建立两个测试文件:
test.html 和 test.jsp
test.html:
>
<HTML>
<HEAD>
<TITLE> test.html TITLE>
HEAD>
<BODY>
<h1>Hello html!h1>
BODY>
HTML>
test.jsp
<%@ page contentType="text/html; charset=GBK" %>
<HTML>
<HEAD>
<TITLE> test.html TITLE>
HEAD>
<BODY>
<h1>
<%out.println("Hello JSP!");%>
h1>
BODY>
HTML>
将两个测试文件放在D:\app\Tomcat5.5\webapps\ROOT 下,然后IE输入:
http://localhost/test.jsp, 显示“Hello JSP!”,OK了 输入:
http://localhost/test.html,显示“Hello html!”,OK了!
这主要是因为apache把所有80端口的请求都转发给了tomcat的8009(ProxyPass / ajp://127.0.0.1:8009/ ;ProxyPassReverse / ajp://127.0.0.1:8009/),由tomcat处理请求,这时的apache只相当于一个转发器的作用,由tomcat解析。此时要是关闭tomcat,再访问还会出现Service Temporarily Unavailable 错误!
如果将请求中静态的页面交给apache处理,动态请求交给tomcat处理。因为他们在各自的处理效率上比较高,这也是整合apache和tomcat的一个作用。
这里我们是要将html交给apache处理,而把jsp转发给tomcat处理。
在最后httpd.conf加上:
ProxyPass /html/ !
表示 /images/ 下的请求不转发,原来的(ProxyPass / ajp://127.0.0.1:8009/,ProxyPassReverse / ajp://127.0.0.1:8009/
)配置下的“ / ” 表示全部转发到8009端口(tomcat监听的)。所以这时只要把不想转发到tomcat处理的放在D:\app\Apache2.2\htdocs 下 名为html文件夹的下面即可。比如:我们把
test.html放在D:\app\Apache2.2\htdocs\html 下,
test.jsp放在D:\app\Tomcat5.5\webapps\ROOT下,在分别
http://localhost/html/test.html
http://localhost/test.jsp
测试发现,此时apache并找不到html下的test.html,而应该把
ProxyPass /html/ !
放在
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
之前
就都可以显示我们需要的结果了!
Apache tomcat各司其职。
这里都只是测试,具体项目,appache服务器的其他设置都可以通过在httpd.cong里修改,如改变路径等。顺便说一下:这里的Apache tomcat是通过Mod-proxy连接起来的。Mod-proxy的缺点是,当其中一台tomcat停止运行的时候,apache仍然会转发请求过去,导致502网关错误。但是只要服务器再启动就不存在这个问题。
Mod-proxy优点是.可以只将Apache置于公网,节省公网IP地址资源。可以通过设置来实现Apache专门负责处理静态网页,让Tomcat专门负责处理JSP和servlet等动态请求。缺点是:如果前置Apache代理服务器停止运行,所有集群服务将无法对外提供。
6,最终测试
启动TOMCAT,然后启动APPACHE2。
在IE输入http://localhost/myapp/test.jsp测试通过。
2.使用APR使得Tomcat的性能提高
Windows下的安装配置
1)http://tomcat.heanet.ie/native/ 下载编译好的 tcnative-1.dll 文件,也可以下载tomcat-native.zip自己进行编译
2)把tcnative-1.dll文件放在Tomcat的bin目录下.
3.下载apache_2.2.4-win32-x86-no_ssl.msi并安装;
下载:http://apache.mirrors.tds.net/httpd/binaries/win32/apache_2.2.4-win32-x86-no_ssl.msi
4.因为apache2.2.4采用mod_proxy连接apache与tomcat,所以配置非常简单。这里我们只需要改动D:\WEBSERVER\Apache2.2\conf\ 下的 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/
5.测试:
建立两个测试文件:
test.html 和 test.jsp
test.html:
>
<HTML>
<HEAD>
<TITLE> test.html TITLE>
HEAD>
<BODY>
<h1>Hello html!h1>
BODY>
HTML>
test.jsp
<%@ page contentType="text/html; charset=GBK" %>
<HTML>
<HEAD>
<TITLE> test.html TITLE>
HEAD>
<BODY>
<h1>
<%out.println("Hello JSP!");%>
h1>
BODY>
HTML>
将两个测试文件放在D:\app\Tomcat5.5\webapps\ROOT 下,然后IE输入:
http://localhost/test.jsp, 显示“Hello JSP!”,OK了 输入:
http://localhost/test.html,显示“Hello html!”,OK了!
这主要是因为apache把所有80端口的请求都转发给了tomcat的8009(ProxyPass / ajp://127.0.0.1:8009/ ;ProxyPassReverse / ajp://127.0.0.1:8009/),由tomcat处理请求,这时的apache只相当于一个转发器的作用,由tomcat解析。此时要是关闭tomcat,再访问还会出现Service Temporarily Unavailable 错误!
如果将请求中静态的页面交给apache处理,动态请求交给tomcat处理。因为他们在各自的处理效率上比较高,这也是整合apache和tomcat的一个作用。
这里我们是要将html交给apache处理,而把jsp转发给tomcat处理。
在最后httpd.conf加上:
ProxyPass /html/ !
表示 /images/ 下的请求不转发,原来的(ProxyPass / ajp://127.0.0.1:8009/,ProxyPassReverse / ajp://127.0.0.1:8009/
)配置下的“ / ” 表示全部转发到8009端口(tomcat监听的)。所以这时只要把不想转发到tomcat处理的放在D:\app\Apache2.2\htdocs 下 名为html文件夹的下面即可。比如:我们把
test.html放在D:\app\Apache2.2\htdocs\html 下,
test.jsp放在D:\app\Tomcat5.5\webapps\ROOT下,在分别
http://localhost/html/test.html
http://localhost/test.jsp
测试发现,此时apache并找不到html下的test.html,而应该把
ProxyPass /html/ !
放在
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
之前
就都可以显示我们需要的结果了!
Apache tomcat各司其职。
这里都只是测试,具体项目,appache服务器的其他设置都可以通过在httpd.cong里修改,如改变路径等。顺便说一下:这里的Apache tomcat是通过Mod-proxy连接起来的。Mod-proxy的缺点是,当其中一台tomcat停止运行的时候,apache仍然会转发请求过去,导致502网关错误。但是只要服务器再启动就不存在这个问题。
Mod-proxy优点是.可以只将Apache置于公网,节省公网IP地址资源。可以通过设置来实现Apache专门负责处理静态网页,让Tomcat专门负责处理JSP和servlet等动态请求。缺点是:如果前置Apache代理服务器停止运行,所有集群服务将无法对外提供。
6,最终测试
启动TOMCAT,然后启动APPACHE2。
在IE输入http://localhost/myapp/test.jsp测试通过。