Linux下Apache+Tomcat+JK实现负载均衡和群集的完整过(3)

刚刚完成了apache服务器的编译,接下来顺便把JK连接器也编译出来。

进入刚刚解压出来的tomcat-connector目录,再进入native目录。执行配置:

[root@lxp2 Downloads]# cd tomcat-connectors-1.2.32-src   [root@lxp2 tomcat-connectors-1.2.32-src]# ls   BUILD.txt  conf  docs  jkstatus  LICENSE  native  NOTICE  support  tools  xdocs   [root@lxp2 tomcat-connectors-1.2.32-src]# cd native/   [root@lxp2 native]# ls   aclocal.m4    BUILDING.txt  configure.in  Makefile.am  nt_service  TODO.txt   apache-1.3    CHANGES       docs          Makefile.in  README.txt   apache-2.0    common        iis           netscape     scripts   buildconf.sh  configure     jni           NEWS         STATUS.txt   [root@lxp2 native]# ./configure --with-apxs=/usr/local/apache2/bin/apxs  

这里需要注意的是配置脚本要添加一个apxs完整路径作为参数。apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。

另外,配置脚本运行时会检查g++所在的目录,如果没有安装g++,则会显示:

configure: error: C++ preprocessor "/lib/cpp" fails sanity check  

请检查是否已经正确安装了c++编译器。

因为实验用的服务器安装的是X86_64版的Red Hat Enterprise Linux Server ,因此要安装如下的包:

libstdc++-devel-4.1.2-46.el5.x86_64.rpm

gcc-c++-4.1.2-46.el5.x86_64.rpm

如果使用rpm命令无法安装,可以在CentOS5464/CentOS/里查找到相应的资源,下载下来安装也是一样的。

配置无误后就可以编译了,执行make命令:

[root@lxp2 native]# make  

7.JK连接器模块的部署

编译完成后使用ls命令来列出native目录下的所有目录和文件。注意有apache-1.3和apache-2.0两个目录。由于在配置编译的时候指定了apxs工具的位置。配置脚本会根据apxs的反馈结果自动识别目标apache服务器为2.x版本,因此本次编译生成的mod_jk.so模块会放在apache-2.0目录中,apache-1.3目录中是没有mod_jk.so的,这一点请注意。如下所示:

[root@lxp2 native]# ls   aclocal.m4    CHANGES        configure     libtool      NEWS        TODO.txt   apache-1.3    common         configure.in  Makefile     nt_service   apache-2.0    config.log     docs          Makefile.am  README.txt   buildconf.sh  config.nice    iis           Makefile.in  scripts   BUILDING.txt  config.status  jni           netscape     STATUS.txt   [root@lxp2 native]# cd apache-2.0/   [root@lxp2 apache-2.0]# ls   bldjk54.qclsrc  Makefile.apxs     mod_jk.a    mod_jk.lo   bldjk.qclsrc    Makefile.apxs.in  mod_jk.c    mod_jk.o   config.m4       Makefile.in       mod_jk.dsp  mod_jk.so   Makefile        Makefile.vc       mod_jk.la   NWGNUmakefile   [root@lxp2 apache-2.0]#   

我们现在将编译好的mod_jk.so拷贝到apache服务器的modules目录中,这个目录是专门用来存放扩展模块的:

[root@lxp2 apache-2.0]# sudo cp ./mod_jk.so /usr/local/apache2/modules/   [root@lxp2 apache-2.0]# cd /usr/local/apache2/modules/   [root@lxp2 modules]# ls   httpd.exp               mod_authz_user.so   mod_include.so   mod_actions.so          mod_autoindex.so    mod_info.so   mod_alias.so            mod_cgi.so          mod_jk.so   mod_asis.so             mod_dav_fs.so       mod_log_config.so   mod_auth_basic.so       mod_dav.so          mod_logio.so   mod_auth_digest.so      mod_dbd.so          mod_mime.so   mod_authn_anon.so       mod_deflate.so      mod_negotiation.so   mod_authn_dbd.so        mod_dir.so          mod_reqtimeout.so   mod_authn_dbm.so        mod_dumpio.so       mod_rewrite.so   mod_authn_default.so    mod_env.so          mod_setenvif.so   mod_authn_file.so       mod_expires.so      mod_speling.so   mod_authz_dbm.so        mod_ext_filter.so   mod_status.so   mod_authz_default.so    mod_filter.so       mod_substitute.so   mod_authz_groupfile.so  mod_headers.so      mod_userdir.so   mod_authz_host.so       mod_ident.so        mod_version.so   mod_authz_owner.so      mod_imagemap.so     mod_vhost_alias.so  

至此JK连接器模块就部署完成了,但是还需要配置,具体配置将在下文中详细描述。

8.部署tomcat服务器

由于要在本地开启两个tomcat服务器实例以模拟负载均衡+群集的效果,因此我们需要将之前解压出来的tomcat复制成两份,进入解压时的目录,重命名解压出来的原始目录为tomcat_server_1,然后复制此目录,副本目录名称为tomcat_server_2:

[root@lxp2 ~]# cd Downloads/   [root@lxp2 Downloads]# ls   apache-tomcat-6.0.33      cpp   apache-tomcat-6.0.33.tar  httpd-2.2.21.tar   apr-1.4.5                 tomcat-connectors-1.2.32-src   apr-1.4.5.tar.gz          tomcat-connectors-1.2.32-src.tar   apr-util-1.3.12   apr-util-1.3.12.tar.gz   [root@lxp2 Downloads]# mv apache-tomcat-6.0.33 tomcat_server_1   [root@lxp2 Downloads]# cp -r tomcat_server_1 tomcat_server_2   [root@lxp2 Downloads]# ls   apache-tomcat-6.0.33.tar  httpd-2.2.21.tar   apr-1.4.5                 tomcat-connectors-1.2.32-src   apr-1.4.5.tar.gz          tomcat-connectors-1.2.32-src.tar   apr-util-1.3.12           tomcat_server_1   apr-util-1.3.12.tar.gz    tomcat_server_2   httpd-2.2.21   [root@lxp2 Downloads]#   

现在测试tomcat_server_1是否能够正常工作。

将我实现写好的一个测试用例下载下来(测试用例基于Spring 3.0编写,已经打成war包),下载地址:。下载得到的文件是TestProject.war。将此压缩包放入tomcat_server_1的webapps目录下。然后切换到tomcat_server_1的bin目录下,启动tomcat_server_1:

[root@lxp2 bin]# ./startup.sh    Using CATALINA_BASE:   /root/Downloads/tomcat_server_1   Using CATALINA_HOME:   /root/Downloads/tomcat_server_1   Using CATALINA_TMPDIR: /root/Downloads/tomcat_server_1/temp   Using JRE_HOME:        /usr/Java/jdk1.6.0_27   Using CLASSPATH:       /root/Downloads/tomcat_server_1/bin/bootstrap.jar  

然后在浏览器中访问:8080/TestProject/showInfo.do,如果没什么意外会显示类似于下面的信息:

This message is from Server, RealPath:   /root/Downloads/tomcat_server_1/webapps/TestProject/   Current Session Id:   471D55C942346EC7BB48D07D9437D57E  

信息中显示了当前测试用例所在的路径以及当前会话的SessionId。

此处要注意的地方同测试apache服务器是否正常工作时是一样的,需要注意防火墙是否阻塞了tomcat服务器默认采用的8080端口,是否有其他程序占用此端口。

看到没什么问题,我们先吧tomcat_server_1关闭

[root@lxp2 bin]# ./shutdown.sh    Using CATALINA_BASE:   /root/Downloads/tomcat_server_1   Using CATALINA_HOME:   /root/Downloads/tomcat_server_1   Using CATALINA_TMPDIR: /root/Downloads/tomcat_server_1/temp   Using JRE_HOME:        /usr/java/jdk1.6.0_27   Using CLASSPATH:       /root/Downloads/tomcat_server_1/bin/bootstrap.jar  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppzfj.html