`
zhangljerry
  • 浏览: 141117 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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,表示将相关的模块静态编译。
两者的区别是:前者使得可以需要更新、重编译某模块(核心模块不受限于这种模式,如coremod_so)时,只需单独编译该模块即可,而不需重新编译整个apache source code,做到单独升级。前者弊端是导致apache启动时慢20%左右,在运行阶段慢5%左右,另外DSO模式不是所有OS都支持的,和软件环境有关系。
--enable-so :该参数表示支持用mod_so模块提供的功能LoadModulehttpd.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
具体请参阅:
以上工作就算结束了编译、安装工作,下面将进行参数调整,部署工作。
 
该文件的路径位于$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下该值可能会出错,可以设置为10002000。根据系统#的并发负载吧。
</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
新建该文件,并将该文件置于$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里却有时不行。还需注意的事,你在清除旧的javaclass文件时,不能为了省事,而直接删除目录,否则刷新时会报错的,等着你的就是要重启JBOSS服务了。
6$JBOSS-HOME/server/default/log下存放的是日志文件,默认的log4j.xml配置是将日志输出到该文件夹下的server.log文件,可以去查看信息进行调试。
7、我们的应用一般部署在$JBOSS-HOME/server/default/deploy/jbossweb-tomcat50.sar/下,建个TestCrm.war目录,把我们的整个应用部署在该.war目录下,这样JSPServlet将由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/下,对应的数据库驱动程序jarcopy至部署的配置的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 -->
分享到:
评论

相关推荐

    Apache安装及JBOSS部署说明文档.rar

    2.1 JBOSS 应用程序的下载及安装 11 2.2 JBOSS 应用程序的配置调整 11 2.2.1配置负载均衡,调整参数 11 2.2.2配置集群(Clustering),调整参数 12 2.2.3配置数据源,调整参数 13 2.2.4配置jboss Connector参数 ...

    apache安装过程

    本文档描述了apache web服务器安装以及常用的编译模式;描述了apache+jboss3.2.6做负载均衡(load balance)的部署细节以及一些常见错误说明;描述了部署jboss3.2.3/3.2.6时一些心得、常用配置项。

    jboss jms参考资料包

    本文档描述了apache web服务器安装以及常用的编译模式;描述了apache+jboss3.2.6做负载均衡(load balance)的部署细节以及一些常见错误说明;描述了部署jboss3.2.3/3.2.6时一些心得、常用配置项

    axise入门文档.rar

    Jboss中安装为例。 1) 在web部署目录下建立axis.war文件夹(名字可以任意取)。 2) 将下载的axis包解压找到webapp目录,将目录中的axis下的文件拷贝至axis.war下,启动JBoss,在浏览器中验证是否安装...

    ubuntu 14.04 配置常用服务器环境

    文档是在 Ubuntu 14.04.2 LTS 上,...也配置了软件随系统开启自动运行,并实际部署了自己的一个 tomcat+jboss+Mysql 项目,文档的步骤都是本人的具体操作,具体可行,相信对希望接触linux部署环境的入门有一定帮助。

    Jetty中文手册

    欢迎访问Jetty文档 Wiki. Jetty是一个开源项目,提供了http服务器、http客户端和java servlet容器。 这个wiki提供jetty的入门教程、基础配置、功能特性、优化、安全、JavaEE、监控、常见问题、故障排除帮助等等。它...

    六大应用服务器用途及简介.docx

    Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的'一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat ...

    开源软件之道(中文高清版)

    4.1 部署和迁移成本 4.2 人员和培训成本 4.3 管理维护和技术支持成本 4.4 风险控制成本 第2篇 使用开源软件 第5章 正确使用开源软件 5.1 管理体制 5.2 法律风险 5.2.1 法律因素之著作权 5.2.2 法律因素之许可证 ...

    开源软件之道.part2of2

    4.1 部署和迁移成本 25 4.2 人员和培训成本 26 4.3 管理维护和技术支持成本 27 4.4 风险控制成本 28 第2篇 使用开源软件 第5章 正确使用开源软件 32 5.1 管理体制 32 5.2 法律风险 33 5.2.1 法律因素之著作权 34 ...

    java高效学习之路-过来人经验

    当前主流的App Server是BEA公司的Weblogic Server和IBM公司的Websphere以及免费的Jboss,选择其中一个进行学习就可以了,个人推荐Weblogic,因为它的体系结构更加干净,开发和部署更加方便,是Java企业软件开发人员...

    Activiti6.0教程例子下载

    1.4. 文档说明 以上部分对工作流、BPMN、Activiti的概念做了一个简单的介绍,目的是了解Activiti究竟是什么,能做些什么…及在学习Activiti之前需要了解的知识与技术。其中大部分文字来自Copy网上的各种资料与文档...

    Sharath-Repo:个人编码

    Apache 许可证,版本 2.0 建造: Maven 文档: 问题跟踪器: 邮件列表: () () 入门 需要以下步骤才能开始! 获取 设置的数据库 启动 {Wildfly|EAP 6.3} 服务器(例如$JBOSS/bin/standalone.sh -b 0.0.0.0 ...

    常用J2EE应用服务器简介.docx

    不过Tomcat协作jboss和apache可以实现j2ee应用服务器功能 一般来说考虑stucts等架构tomcat就可以了,但假如考虑EJB的话,WebLogic是比较好的选择。 扩展性: 用WebLogic运行标准的java可能并不是最好的方式,...

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

Global site tag (gtag.js) - Google Analytics