1.下载安装tomcat
既然是两个服务器的集成,所以首先要进行安装,这里假设你的机器已经安装好了JDK并且设置了正确的环境变量(如果不知道怎么设置,可以上网查的,这一步还是比较简单的)
[list]
[*]1)下载:去apache的官方网站上下载tomcat,我选择的版本是6.0.29,选择apache-tomcat-6.0.29.tar.gz,ubuntu和red hat都有图形界面和firefox,所以这一步很easy
[*]2) 解压:解压下载的包,可以使用命令行也可以使用图形化界面。命令是:tar zxvf apache-tomcat-6.0.29.tar.gz
[*]3)启动:进入tomcat的目录 /tomcathome/bin 然后运行以下命令:sh startup.sh(tomcathome为你解压tomcat的完整目录)
[*]4)验证:打开浏览器,输入http://localhost:8080 ,如果能够看到那只熟悉的小猫,恭喜你这一步成功了
[/list]
2.安装apache2
[list]
[*]1)下载:去apache的官方网站下载apache2,在网站上寻找http server这个项目(项目列表的第一个),我选择版本是2.2.17(这是最新的稳定版本),下载后得到这样一个文件httpd-2.2.17.tar.gz
[*]2)安装:相对于tomcat,apache2的安装要复杂的多,要用到很多的命令行,这个过程顺利的话需要十多分钟
[*]3)启动:/opt/apache2/bin/httpd -k start //注意:/opt/apache2就是上一步中prefix的值,根据你上一步的设置,可能有所不同;如果在启动的过程中,发现80端口冲突,需要将apache2的端口进行修改,修改的位置是/apache2/conf/httpd.conf中的Listen 80
[*]4)测试:如果上一步启动没有问题,打开浏览器输入:http://localhost (如果没有修改端口号,此处不需要指明端口号,默认就是80),如果在浏览器中能够看到“It works”页面,说明已经安装成功啦
[/list]
3.安装mod_jk插件
要实现apache2和tomcat集成,apache2的mod_jk插件是连接二者的桥梁,安装这个插件的详细过程如下:
[list]
[*]1.下载:网站提供了http://tomcat.apache.org/download-connectors.cgi该插件的下载,其不同的版本对应于不同的apache版本,这里我们可以选择mod_jk-1.2.31-httpd-2.2.x.so进行下载,下载完成后,将其更名为mod_jk.so(关于mod_jk与apache的版本对应关系,在下载页面的下方有介绍,我的原则是都选择最新的稳定版本)
[*] 2.安装:将下载并改名后的文件,置于/opt/apache2下,然后修改Apache的配置文件(httpd.conf),使Apache 启动的时候加载 JK 模块,在httpd.conf中添加以下内容:LoadModule jk_module mod_jk.so
[*] 3.测试:重新启动apache2,重新访问页面,查看是否正常,命令:/opt/apache2/bin/httpd -k restart
[*] **注意:在ubuntu下,到此时一切正常,但是在red hat下出现了一个如下的异常:
httpd: Syntax error on line 107 of /opt/apache2/conf/httpd.conf: Cannot load /opt/apache2/modules/mod_jk-1.2.28-httpd-2.2.X.so into server: /opt/apache2/modules/mod_jk-1.2.28-httpd-2.2.X.so: wrong ELF class: ELFCLASS32
[/list]
此时按照查到的方法,需要下载mod_jk的源码,在本地进行编译,
[list]
[*]1.下载最新的源码包到本地,解压后进入native 目录.
[*]
[*]2. 配置源码,需要指定 Apache 中的 apxs 程序的路径,运行以下命令 ./configure --with-apxs=/opt/apache2/bin/apxs
[*]
[*]3.make 一下如果没有错误提示的话,在native 目录下会生成 apache-2.0 文件夹,mod_jk.so就在这个 文件下.
[*]
[*]得到本地生成的mod_jk.so后,回到上面步骤的第二步即可
[/list]
4.集成相关的配置
现在我们需要的软件都已经齐备了,要开始进行配置了。
[list]
[*]1)在apache的配置文件目录,即/opt/apache/conf下新建workers.properties,内容如下:
[*]2)在httpd.conf文件中添加以下内容
[*]3)将httpd.conf文件中#Include conf/extra/httpd-vhosts.conf前面的#去掉
[*]4)进入/opt/apache2/conf/extra目录,打开httpd-vhosts.conf 文件,并添加以下内容,
[*]解释如下:
8008为apache的端口号,若没有修改,应该为80
/opt/webapps/为静态资源的放置目录
JkUnMount 指明了要有apache处理的静态资源扩展名
JkMount指明了要有tomcat处理的请求
Directory子标签的声明了资源的访问权限
[*]5)重启apache服务器,输入网址,如:http://localhost:8008/online就可以访问online应用了,并且静态资源是由apache处理,而动态请求由tomcat处理
[/list]
既然是两个服务器的集成,所以首先要进行安装,这里假设你的机器已经安装好了JDK并且设置了正确的环境变量(如果不知道怎么设置,可以上网查的,这一步还是比较简单的)
[list]
[*]1)下载:去apache的官方网站上下载tomcat,我选择的版本是6.0.29,选择apache-tomcat-6.0.29.tar.gz,ubuntu和red hat都有图形界面和firefox,所以这一步很easy
[*]2) 解压:解压下载的包,可以使用命令行也可以使用图形化界面。命令是:tar zxvf apache-tomcat-6.0.29.tar.gz
[*]3)启动:进入tomcat的目录 /tomcathome/bin 然后运行以下命令:sh startup.sh(tomcathome为你解压tomcat的完整目录)
[*]4)验证:打开浏览器,输入http://localhost:8080 ,如果能够看到那只熟悉的小猫,恭喜你这一步成功了
[/list]
2.安装apache2
[list]
[*]1)下载:去apache的官方网站下载apache2,在网站上寻找http server这个项目(项目列表的第一个),我选择版本是2.2.17(这是最新的稳定版本),下载后得到这样一个文件httpd-2.2.17.tar.gz
[*]2)安装:相对于tomcat,apache2的安装要复杂的多,要用到很多的命令行,这个过程顺利的话需要十多分钟
tar zxvf httpd-2.2.17.tar.gz //这一步是解压得到的tar包
cd httpd-2.2.17 //进入解压后的目录
./configure --prefix=/opt/apache2 //设置apache2的安装路径
make //编译
make install //开始安装了
[*]3)启动:/opt/apache2/bin/httpd -k start //注意:/opt/apache2就是上一步中prefix的值,根据你上一步的设置,可能有所不同;如果在启动的过程中,发现80端口冲突,需要将apache2的端口进行修改,修改的位置是/apache2/conf/httpd.conf中的Listen 80
[*]4)测试:如果上一步启动没有问题,打开浏览器输入:http://localhost (如果没有修改端口号,此处不需要指明端口号,默认就是80),如果在浏览器中能够看到“It works”页面,说明已经安装成功啦
[/list]
3.安装mod_jk插件
要实现apache2和tomcat集成,apache2的mod_jk插件是连接二者的桥梁,安装这个插件的详细过程如下:
[list]
[*]1.下载:网站提供了http://tomcat.apache.org/download-connectors.cgi该插件的下载,其不同的版本对应于不同的apache版本,这里我们可以选择mod_jk-1.2.31-httpd-2.2.x.so进行下载,下载完成后,将其更名为mod_jk.so(关于mod_jk与apache的版本对应关系,在下载页面的下方有介绍,我的原则是都选择最新的稳定版本)
[*] 2.安装:将下载并改名后的文件,置于/opt/apache2下,然后修改Apache的配置文件(httpd.conf),使Apache 启动的时候加载 JK 模块,在httpd.conf中添加以下内容:LoadModule jk_module mod_jk.so
[*] 3.测试:重新启动apache2,重新访问页面,查看是否正常,命令:/opt/apache2/bin/httpd -k restart
[*] **注意:在ubuntu下,到此时一切正常,但是在red hat下出现了一个如下的异常:
httpd: Syntax error on line 107 of /opt/apache2/conf/httpd.conf: Cannot load /opt/apache2/modules/mod_jk-1.2.28-httpd-2.2.X.so into server: /opt/apache2/modules/mod_jk-1.2.28-httpd-2.2.X.so: wrong ELF class: ELFCLASS32
[/list]
此时按照查到的方法,需要下载mod_jk的源码,在本地进行编译,
[list]
[*]1.下载最新的源码包到本地,解压后进入native 目录.
[*]
[*]2. 配置源码,需要指定 Apache 中的 apxs 程序的路径,运行以下命令 ./configure --with-apxs=/opt/apache2/bin/apxs
[*]
[*]3.make 一下如果没有错误提示的话,在native 目录下会生成 apache-2.0 文件夹,mod_jk.so就在这个 文件下.
[*]
[*]得到本地生成的mod_jk.so后,回到上面步骤的第二步即可
[/list]
4.集成相关的配置
现在我们需要的软件都已经齐备了,要开始进行配置了。
[list]
[*]1)在apache的配置文件目录,即/opt/apache/conf下新建workers.properties,内容如下:
worker.list=tomcat1 // 此处只有一个tomcat,随便起个名字就行,如果是多个tomcat集群的话,需要逗号进行分割
worker.tomcat1.port=8009 //这个端口号是要连接tomcat的server.xml中AJP1.3的端口号,如果一台机器上同时运行多个tomcat,一定要将tomcat的这个端口设为不同的值
worker.tomcat1.host=localhost//tomcat的ip地址
worker.tomcat1.type=ajp13//要使用的通信协议
worker.tomcat1.cachesize=1000//配置tomcat的jk连接缓存大小
worker.tomcat1.socket_keepalive=1//防止防火墙切断未激活的网络连接
[*]2)在httpd.conf文件中添加以下内容
LoadModule jk_module mod_jk.so// 这句如果在前面测试时已经添加,其作用是要加载jk模块
JkWorkersFile "conf/workers.properties"//指明配置文件的位置
[*]3)将httpd.conf文件中#Include conf/extra/httpd-vhosts.conf前面的#去掉
[*]4)进入/opt/apache2/conf/extra目录,打开httpd-vhosts.conf 文件,并添加以下内容,
NameVirtualHost *:8008
<VirtualHost *:8008>
DocumentRoot "/opt/webapps/"
ServerName localhost
JkMount /* tomcat1
JkUnMount /*.js tomcat1
JkUnMount /*.gif tomcat1
JkUnMount /*.swf tomcat1
JkUnMount /*.jpng tomcat1
JkUnMount /*.png tomcat1
JkUnMount /*.css tomcat1
JkUnMount /*.htm tomcat1
JkMount /*.html tomcat1
JkMount /*.ajax tomcat1
<Directory "/opt/webapps/">
Options Includes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/opt/webapps/online/WEB-INF">
Order deny,allow
Deny from all
</Directory>
</VirtualHost>
[*]解释如下:
8008为apache的端口号,若没有修改,应该为80
/opt/webapps/为静态资源的放置目录
JkUnMount 指明了要有apache处理的静态资源扩展名
JkMount指明了要有tomcat处理的请求
Directory子标签的声明了资源的访问权限
[*]5)重启apache服务器,输入网址,如:http://localhost:8008/online就可以访问online应用了,并且静态资源是由apache处理,而动态请求由tomcat处理
[/list]