J2EE WEB项目物理装置连接图如下所示。
Figure 1 WEB PROJECT CONFIGURATION
Web 服务器对应J2EE项目开发过程中的表现层(Presentation Tier),通过外部防火墙后向终端用户提供服务。虽然Tomcat等应用服务器也能实现Web服务器的功能,但其效率相对较低,且会给服务器造成较大负荷,因此一般利用apache Web服务器直接处理静态文本,javascript脚本和图片等请求。另外,网站的SSL数字证书也由Web服务器管理保存。
如图1,终端用户访问网站的网址,借助于http(默认端口:80)或https(默认端口443)传输协议向服务器提交请求,用户请求经过外部防火墙过滤后由apache Web服务器处理并响应用户请求。Apache服务器根据配置文件(http.conf)判断是由自己处理用户请求(*.html,*.js等),还是将用户请求(*.jsp,*.act等)转交由tomcat应用服务器进一步处理。
Application 服务器对应J2EE项目开发过程中的业务层(Business Tier)。服务器只开放特定端口, 并由内部防火墙限定,只允许特定的主机访问(Web Server, DB server等),增加系统的安全性。应用服务器接收Web服务器转交的请求后处理并将处理结果(JSON等)返回给Web服务器,然后由Web服务器返回给用户。
Tomcat服务器启动后,默认在端口8080侦听http请求,但默认不支持https协议。通过8080端口直接访问Tomcat服务器中加载的网站时,Tomcat同时起到Web服务器和Application服务器的功能,但由于这样效率较低,在大型网络项目中并不适合。因此Tomcat还默认提供了与Apache的连接器,该连接器默认侦听8009端口。安装Apache所需对连接器(mod_jk或http-proxy或proxy-ajp等),并合理配置Apache的httpd.conf后,将需要由Tomcat处理的请求指向Tomcat的8009端口
,即可以让Apache和Tomcat协同工作。另外,在大型网络项目中,可以配置Apache使其按照既定权重,将请求转发给不同的Tomcat服务器,进而配置Tomcat使各个应用服务器间共享session,以达到负载均衡和集群的目的。