Apache安装及jboss部署说明文档

A.参考文献
 
 
 
 
 
 
……
……
互联网
 
写在前面的话:
由于本人也是 JBOSS 的初级用户, JBOSS 又很强大,在工作中也是摸索积累的过程,因此总结难免有所错误或纰漏,但已经是尽我的努力,力求正确,如有错误或纰漏,敬请指正。
 
文档作者:周怀进
 
联系方式 :
 
 
 
 

目 录
 
1 .Apache2.0及连接器jk1.2的编译部署
我们需要软件及其版本说明:
a)    apache服务器: httpd-2.0.54
b)apache/tomcat连接器:jk1.2.14,这里选用1.2.*版本,虽然有jk2.0,但据相关文档介绍,jk2.0已不再开发,而jk1.2.*版本使用范围很广,久经考验了,稳定性有保障.两个版本系列对应的配置也有很大的变化,故而这里选用jk1.2系列
下载地址:
安装apache本文档依据的版本是 httpd-2.0.54,下载Unix Source,下文介绍主要以linux OS为主,间或会介绍一点windows下安装的细节。
我们的目标是用apache来做前端的web服务器,后端用jboss3.2.6,实现负载均衡。
下载完源程序包之后,放到一个临时目录中,如 /home/software/:
 
#cd /home/software/
#tar zxvf httpd-2.0.54.tar.gz
#cd /home/software/httpd-2.0.54
#./configure --enable-MODULE=shared   --enable-so --with-mpm=worker
#make
#make install
 
 
参数解释:
--enable- MODULE =shared :该参数是使得相关的模块编译为可动态加载模块(DSO模式),如果不选用该选项,apache默认的选项是: --enable- MODULE =static, 表示将相关的模块静态编译。
两者的区别是:前者使得可以需要更新、重编译某模块 ( 核心模块不受限于这种模式,如 core mod_so) 时,只需单独编译该模块即可,而不需重新编译整个 apache source code ,做到单独升级。前者弊端是导致 apache 启动时慢 20 %左右,在运行阶段慢 5 %左右 , 另外 DSO 模式不是所有 OS 都支持的,和软件环境有关系。
--enable-so  : 该参数表示支持用 mod_so 模块提供的功能 LoadModule httpd.conf 文件或包含的 conf 文件中动态加载某个模块。
 
--with-mpm=worker    :该参数是配置apache将以何种模式编译的。Apache网站文档指出不同操作系统下的不同的默认模式.
BeOS
Netware
OS/2
Unix
Windows
在安装完 apache 后,在类 unix OS 下,可以在 ./bin 目录下用 ./httpd –l 来看到编译时指定的 mpm 参数,他们对应着不同的 .c 模块。
windows 环境下,可以用 ./bin/Apache –l 来查看相关被编译的模块。 Win 环境下默认是 mpm_winnt, 则可以看到 :
 
C:\Apache Group\Apache2\bin>apache -l
Compiled in modules:
 core.c
 mod_win32.c
 mpm_winnt.c
 http_core.c
 mod_so.c
各模式的区别,更具体的描述请参见 http://httpd.apache.org/docs/2.0/mpm.html ,下面只简单说明一下, worker 模式是以 process/thread 混和模式运行的,如果 WEB 服务器的期望负载较大的话,则推荐使用 worker 模式,如果需要一个稳定性考虑为优先的服务器的话,推荐使用 prefork 模式 , 同样的负载条件下, prefork 模式的 apache 占用的内存会大很多。
 
默认安装的路径为 : /usr/local/apache2/, 如果要指定安装路径,则用参数 ./configure --prefix= PREFIX 来指定安装路径, PREFIX 为指定的绝对路径。
可以用 PREFIX /bin/apachectl start 来测试是否可以正常启动服务。
可以用 PREFIX/bin/httpd –t 来测试 http.conf 的语法是否合法。
 
下载完源程序包之后,放到一个临时目录中,如 /home/software/:
 
1、#cd /home/software/
2、#tar zxvf jakarta-tomcat-connectors-1.2.14.1-src.tar.gz
3、#cd /home/software/jakarta-tomcat-connectors-1.2.14.1-src/jk/native
4、# ./configure --with-apxs=/usr/local/apache2/bin/apxs
5、#make
6、# cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules
 
查看…/native目录,会看到有apache-1.3以及apache-2.0目录,在第4步,用--with-apxs参数来指定扩展程序apxs的位置,make程序会根据提供的apxs的版本来辨别需要针对apache的哪个版本来生成mod_jk.so,如本文所示例,程序将知道需要为apache2.0生成mod_jk.so,因此编译工作将会在...jk/native/apache-2.0中进行,浏览编译日志信息会看到这些信息。
第6步是将编译后的so拷贝至apache的安装路径的modules目录中,应该根据安装路径去调整上述脚本中的路径。
另外可以将mod_jk.so静态连接到apache2.0中,然后再一次编译apache2.0,在上述脚本中加上参数:
./configure --with-apache=/home/software/httpd-2.0.54
具体请参阅:
以上工作就算结束了编译、安装工作,下面将进行参数调整,部署工作。
 
1.4.1.httpd.conf的修改
该文件的路径位于$APACHE-HOME/conf
 
上述编译过程中我们选用的 worker 模式,因此我们将修改 worker 模块的配置
<IfModule worker.c>
StartServers          4    # 最初建立进程的数量
ServerLimit          24   # 进程建立的最大数量,硬限制
ThreadLimit          128  # 每一进程能创建线程的最大数量,硬限制,该参数建议 # ThreadsPerChild 一致,如果 ThreadLimit > ThreadsPerChild 的话,会造成不 ## 必要的内存消耗。
MaxClients          3072 # 同时可以得到处理的客户端的最大数量
MinSpareThreads     100   # 所有进程中空闲线程的总数最小数值
MaxSpareThreads     200    # 所有进程中空闲线程的总数最大数值
ThreadsPerChild      128   # 每个子进程可以建立的固定数量的线程
MaxRequestsPerChild 0     # 用于控制服务器建立和结束进程的频率 , 0 表示没有 # 限制,但在 solaris OS 下该值可能会出错,可以设置为 1000 2000 。根据系统 # 的并发负载吧。
</IfModule>
 
在httpd.conf文件的最后一行加上: Include conf/mod_jk2.conf
 
另外还需修改 #ServerName www.example.com:80ServerName 127.0.0.1:80
 
1.4.2.mod_jk2.conf的所有内容
新建该文件,并将该文件置于$APACHE-HOME/conf
 
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers2.properties
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
JkMount /* loadbalancer
#apache will serve the static picture.
# 以下命令意味着所有的图片将由 APACHE 解析
JkUnMount /*.jpg loadbalancer 
JkUnMount /*.gif loadbalancer
JkUnMount /*.swf loadbalancer
JkUnMount /*.bmp loadbalancer
JkUnMount /*.png loadbalancer
 
在上述配置中,是配置所有图片由 APACHE 来解析,因此我们需要将项目中的所有图片均拷贝到 $APACHE-HOME/htdocs/ 下,如果你的部署的项目 ( 应用 ) ,在访问时需要输入前缀 , http://www.DDD.com/TestCrm/login.do ,则请注意,在 $APACHE-HOME/htdocs/ 下需要建一个目录“ TestCrm , 然后按照你项目中图片所在的路径,连同路径中所有目录一并考入 TestCrm 目录,例如你的图片位于
…./TestCrm.war/images/1.jpg, 那么为了 APACHE 能找到图片,则你在 APACHE 中的图片位置应是 $APACHE-HOME/htdocs/TestCrm/images/1.jpg
1.4.3.workers2.properties的所有内容
新建该文件,并将该文件置于$APACHE-HOME/conf
 
请注意:下列配置中的 server105, server106 等紫色的斜体字符串都是根据部署的 jboss 的信息来部署的 , 其中 server105, server106 需要在 jboss 的相关配置中修改,具体详见下文介绍。对应的 IP 地址应改为 JBOSS 所在的 server IP
#以下为 workers2.propertie的内容
worker.list=loadbalancer,server105,server106
 
# Define the first node...
worker.server105.port=8009
worker.server105.host=192.10.12.105
worker.server105.type=ajp13
worker.server105.lbfactor=1
#worker.server105.local_worker=1
worker.server105.cachesize=100
 
# Define the 2nd node...
worker.server106.port=8009
worker.server106.host=192.10.12.106
worker.server106.type=ajp13
worker.server106.lbfactor=1
#worker.server106.local_worker=1
worker.server106.cachesize=100
 
# Now we define the load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=server105,server106
worker.loadbalancer.sticky_session=1
 
 
说明: worker.loadbalancer.sticky_session=1 参数的设定,意味着一旦用户通过 APACHE 连接到某台 JBOSS SERVER( 创建了 session) ,则只要在该台 JBOSS 服务正常的情况下,该用户所有的请求都将会发送至该 JBOSS SERVER
/usr/local/apache2/bin/apachectl start
 
/usr/local/apache2/bin/apachectl stop
 
如果启动时报错,提示80端口被绑定,请注意有可能是在装linux OS时选装了apache并且启动了服务,请直接在命令行用apachectl stop ,停止原先的服务,其存在路径一般为/usr/sbin/apachectl
 
2.JBOSS3.2.3/3.2.6部署及配置修改
$JBOSS-HOME/server/ 下有 3 个目录, all/default/minimal ,它们是表示 3 种配置,全部的配置、默认配置、最小配置,我们在启动 JBOSS 服务时,可以指定
run –c all 表示是启动 all 配置 ( 将会加载所有服务 ) run 表示是以默认配置启动 ;
run –c mimimal  表示是启动 mimimal 配置。这三者所加载的服务数量不同,具体区别可查阅 JBOSS 相关文档,你还可以自己定义一个配置,如 test ,属于高手去为了性能上的考虑了,那这份文档对你的帮助不会太大了。
 
如果你确定了 JBOSS 服务启动的配置,那么你的应用及相关配置就需要部署在对应的目录下的相关的路径下,如 all/ default/ minimal/ 下。
为了描述方便,以下描述将以 JBOSS3.2.6 版本, default 配置为例,如果你以别的配置启动,则在对应的目录下寻找或配置相关文件。
1 、相关 DTD 定义文件位于 $JBOSS-HOME/docs/dtd ,在其下的文件中可以查阅某个 XML 配置文件中某个元素或属性的意义。
2 、数据源配置文件的路径, $JBOSS-HOME/server/default/deploy ,文件格式必须是 *-ds.xml 的样式。不同的数据库配置参数可参考 $JBOSS-HOME/docs/examples/jca/ 下的示例文档。有关参数的细节在下面会有一定的描述。
3 、公共的 jar 包我们可以放在 $JBOSS-HOME/server/default/lib 下,如数据库的 JDBC jar,log4j.jar 等,如果这些 JAR 已经在该 lib 下放置了,那么我们的应用 WEB-INF/lib 下不应该再放置,否则 JBOSS 也会将他们再一次加载,白白占用内存。
4 、配置日志的文件, log4j.xml 位于 $JBOSS-HOME/server/default/conf 下,具体配置下文还会有一点介绍
5 $JBOSS-HOME/server/default/work 下存放的是 JSP 编译后的 .java .class 文件 , 如果调试 JSP 时出错了,可以到该目录下 ( 一级级去翻吧 ) 去找对应的文件,调试问题。还有个小 TIPS ,有时我们明明把一个 JSP 更新到对应的目录里了,可是去刷新页面时,内容还是旧的,为了解决该问题,我们可以到 work 目录下,将对应的 .java .class 文件删了,再刷新即可,这个原因不好推测,有时可以自动刷新,有时不行。单个的 TOMCAT 都能自动刷新,不知为何集成到 JBOSS 里却有时不行。还需注意的事,你在清除旧的 java class 文件时,不能为了省事,而直接删除目录,否则刷新时会报错的,等着你的就是要重启 JBOSS 服务了。
6 $JBOSS-HOME/server/default/log 下存放的是日志文件,默认的 log4j.xml 配置是将日志输出到该文件夹下的 server.log 文件,可以去查看信息进行调试。
7 、我们的应用一般部署在 $JBOSS-HOME/server/default/deploy/jbossweb-tomcat50.sar/ 下,建个 TestCrm.war 目录,把我们的整个应用部署在该 .war 目录下,这样 JSP Servlet 将由 tomcat 引擎来解析处理。
8 、配置应用的 WEB 服务的端口号及参数。
JBOSS3.2.6 是在 …./ deploy/jbossweb-tomcat50.sar/server.xml 中,自己找 8080, 修改为你想设定的端口即可。
JBOSS3.2.3 是在 …/default/deploy/jbossweb-tomcat41.sar/META-INF/jboss-service.xml 中配置。
 
前往 http://www.jboss.com 去下载相应的版本。直接解压到相关的目录即可。
 
 
2.2.1配置负载均衡,调整参数
需要修改配置文件以适应 apache 中配置的“ session sticky 配置 ”。如下:
Jboss3.2.3 修改 :
%JBOSS_HOME%/server/default/deploy/jbossweb-tomcat41.sar/META-INF/ jboss-service.xml
 
修改 <Engine name="MainEngine" defaultHost="localhost">
<Engine name="MainEngine" jvmRoute=" server106 "  defaultHost="localhost">
与上述 workers2.properties 定义的内容一致。
 
Jboss3.2.6 修改 :
%JBOSS_HOME%/server/default/deploy/jbossweb-tomcat50.sar/server.xml
修改 <Engine name="jboss.web" defaultHost="localhost"> 为:
<Engine name="jboss.web" jvmRoute=" server106 " defaultHost="localhost">
与上述 workers2.properties 定义的内容一致。
Jboss4.0 的修改和 Jboss3.2.6 的一致。
 
如上配置后,就可以实现 apache+jboss 的负载均衡。
2.2.2配置集群(Clustering),调整参数
如果我们要想使得几台JBOSS应用服务器互为备份(仅限于SESSION),在群内一台JBOSS服务器down掉的时候,用户不受影响,继续以登陆用户身份进行工作,则我们需要配置Clustering,并启动相关服务。下面将描述相关配置项:
1)、修改应用APP的web.xml:
Jboss3.2.6:
../default/deploy/jbossweb-tomcat50.sar/Test.war/WEB-INF/web.xml
 
Jboss3.2.3
../default/deploy/jbossweb-tomcat41.sar/Test.war/WEB-INF/web.xml
修改内容如下:
 
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd ">
<web-app>
…….
…..
….
<distributable/>
</web-app>
2)、需要启动一个服务cluster-service.xml
如果是以run -c all 来启动jboss服务,则默认是将cluster服务启动,无需做什么配置工作,只需确认相关文件是否存在即可。
确认…/server/all/deploy/下存在cluster-service.xml文件;
确认…/server/all/lib/下存在jgroups.jar文件,如果没有则重新安装jboss。
如果应用程序部署在default配置下,则需将上述的两个文件分别拷入
…/server/default/deploy/、…/server/default/lib/目录下。
 
配置完毕,如有异常,请查看日志。更详细的信息请参阅JBOSS.com上提供的admin.pdf。
2.2.3配置数据源,调整参数
各种类型的数据库,都可以根据 %JBOSS_HOME%/docs/examples/jca/ 下的示例文档配置,更详细的参数配置可参阅 JBOSS.com 上的文档或 …/docs/dtd/ 下的 dtd 定义来配置。
下面以 oracle 为例,提供我们在生产机环境的配置。
xml 文件需要被部署在 %JBOSS_HOME%/server/all(or default)/deploy/ 下,对应的数据库驱动程序 jar copy 至部署的配置的 lib 下,如 …all/lib/ …default/lib/ 下。
 
<datasources>
 <local-tx-datasource>
    <jndi-name>jdbc/TestDataSource</jndi-name>
    <connection-url>jdbc:oracle:thin:@192.168.1.2:1521:test</connection-url>
    <!--<connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url>-->
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <user-name>test</user-name>
<password>test</password>
    <!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool -->
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name>
    <!-- Checks the Oracle error codes and messages for fatal errors -->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值