作为一名java EE系统架构工程师,经常需要搭配和建立JSP(Java Server Pages)的开发环境和运行环境,所以本人在平时的工作中积累了一些在Linux下搭配JSP环境的经验。由于搭配环境所涉及的步骤比较繁杂,所以将其整理出来与大家一起分享。希望能起到抛砖引玉的作用,各位高手也多提宝贵意见。 一、JSP与Sewlet 在开始具体的操作之前,需要大家了解一下JSP程序与Servlet容器之间的关系,这样可以更好地理解JSP环境的搭配原理。JSP是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术是用Java语言作为脚本语言。JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。Apache做为最流行的web服务器功能强大,高效,但并不支持jsp及servlet,所以通常的做法是把它们整合起来,让Apache处理静态页面,而把动态页面的请求交给 tomcat处理,发挥各自的优势。 由此可以看出,JSP的主要作用是对服务器端的Java程序提供接口, 以便进行HTTP的交互。而要实现这种接口就必须要有一个处理JSP脚本的容器,更进一步,知道所有JSP脚本在运行时刻,都会被编译成Servlet,所以要处理JSP的容器就是--Servlet容器。现在世界上比较常用的Servlet容器主要有两种,一种是Apache基金会的Tomcat,另外一种是Jetty。相比较而言两者在Servlet处理上不分伯仲, 但笔者更倾向于选择TomCat, 因为Tomcat与Apache的HTTP服务器相结合可以大大提高网站的访问承受能力,而Jetty就比较单纯的是一个Servlet容器而已。 二、配置JSP环境 1.下载Apache 现在明白了JSP环境的搭配原理,就可以开始正式的搭配工作。首先要做的是配置好Apache,可以去http://httpd.apache.org下载一个最新版本的Apache服务器。目前适合Linux下的最新版本是UnixSource,httpd-2.3.2.tar.gz。下载完后就可以开始编译和安装。首先进入到下载的软件包所在目录,执行以下命令: $tar zxvf httpd-2.3.2.tar.gz 然后进入解压缩后的目录: $cd httpd-2.3.2 2.编译和安装 $ ./configure --prefix=usr/local/apache --enable-module=s --enable-module=rewrite --enable-shared=max --htdocsdir=/var/www &&make && make install 需要注意的是,所有命令都需要写在一行里面。 这里通过enable-module参数告诉设置脚本,需要启动so和rewrite模块,so模块是用来提DSO支持的Apache核心模块,而rewrite模块则是用意实现地址重写的模块,由于rewrite模块需要DBM支持,如果在初次安装时没有编译进Apache。以后需要用到时需要重新编译整个Apache才可以实现。如果不能确定以后不会用到rewrite模块,还是建议在第一次编译的时候把rewrite模块编译好。enable-shared=max这个参数的作用时编译Apache时,把除了so以外的所有Apache的标准模块都编译成DSO模块,而不是编译进Apache核心内。安装Apache很简单, 启动Apache: $/usr/local/apache/bin/apachectl start 然后用IE看“HTTP://IP”,此时应该能看到熟悉的Apache羽毛标志。 3.安装Tomcat 以上的工作完成了Apache的安装,下面就需要安装Tom-cat了。Tomcat需要在http://tomcat.apache.org进行下载,最新的版本是6.0.20.Tomcat下载后不需要编译,只需要解压出来就可以使用。 使用命令解压: $tar zxvf apache-tomcat-6.0.20.tar.gz 把解压缩后的目录放人,opt目录下并改名,以方便管理。 $mv apache-tomcat-6.0.20 /opt/tomcat 至此,Tomcat也就安装完毕了,要实现Tomcat和Apache的结台,还需要一个JK包,进入http://tomcat.apache.org/connectors-doc/下载最新版本的JK,最新版本号是1.2.28。下载后的文件是已经编译好的Apache模块,只需要把这个模块放人Apache的模块目录即可。 $mv jakarta-tomcat-connectors-jk-1.2.28-linux-sles9-x86_64-worker.so /usr/local/apache/modules/ $mv jakarta-tomcat-connectors-jk-1.2.28-linux-sles9-x86_64-worker.so jk_modules.so 然后编辑Apache的配置文件httpd.conf 加入JK模块的命令: LoadModule jk_module modules/mod_jk.so 载入JK模块后,还需要配置一下Apache的conf目录下的workers2.properties文件,一般内容如下: #Define the communication channel [channel.socket:localhost:8009] info=Ajp13 forwarding over socket tomcatld=localhost:8009 #Map the Tomcat examples webapp to the web server uri space [urli:/examples/*] info=Map the whole webapp 这个/examples应该是Tomcat下的路径,而不是Apache的,但在这里做了映射,这个URL就能被Apache接受并转给Tomcat,而不用加Tomcat的端口号了。至此Linux下JSP环境搭建就全部完成了,在实际应用中如果有多个Webapp只需要修改Workers2.properties文件,加入相应的映射就可以了。 |