1 .Apache2.0及连接器jk1.2的编译部署
1.1下载相关软件包
我们需要软件及其版本说明:
a)    apache服务器:httpd-2.0.54
下载地址: http://httpd.apache.org/download.cgi
b)apache/tomcat连接器:jk1.2.14,这里选用1.2.*版本,虽然有jk2.0,但据相关文档介绍,jk2.0已不再开发,而jk1.2.*版本使用范围很广,久经考验了,稳定性有保障.两个版本系列对应的配置也有很大的变化,故而这里选用jk1.2系列
下载地址:
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.14/
安装apache本文档依据的版本是httpd-2.0.54,下载Unix Source,下文介绍主要以linux OS为主,间或会介绍一点windows下安装的细节。
我们的目标是用apache来做前端的web服务器,后端用jboss3.2.6,实现负载均衡。
1.2 apache2.0的编译安装
下载完源程序包之后,放到一个临时目录中,如 /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
beos
Netware
mpm_netware
OS/2
mpmt_os2
Unix
prefork
Windows
mpm_winnt
在安装完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的语法是否合法。
 
1.3 jk1.2.14的编译安装
下载完源程序包之后,放到一个临时目录中,如 /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
具体请参阅:
http://tomcat.apache.org/connectors-doc/howto/apache.html
以上工作就算结束了编译、安装工作,下面将进行参数调整,部署工作。
 
1.4 apache及jk1.2的参数配置
1.4.1.httpd.conf的修改
该文件的路径位于$APACHE-HOME/conf
 
上述编译过程中我们选用的worker模式,因此我们将修改worker模块的配置
StartServers         4    #最初建立进程的数量
ServerLimit         24   #进程建立的最大数量,硬限制
ThreadLimit         128  #每一进程能创建线程的最大数量,硬限制,该参数建议#和ThreadsPerChild一致,如果ThreadLimit > ThreadsPerChild的话,会造成不##必要的内存消耗。
MaxClients         3072  #同时可以得到处理的客户端的最大数量
MinSpareThreads    100   #所有进程中空闲线程的总数最小数值
MaxSpareThreads    200   #所有进程中空闲线程的总数最大数值
ThreadsPerChild     128   #每个子进程可以建立的固定数量的线程
MaxRequestsPerChild  0    #用于控制服务器建立和结束进程的频率,为0表示没有#限制,但在solaris OS下该值可能会出错,可以设置为1000或2000。根据系统#的并发负载吧。
 
在httpd.conf文件的最后一行加上:Include conf/mod_jk2.conf
 
另外还需修改#ServerName www.example.com:80为ServerName 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。
1.5 apache服务的启动和停止
/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部署及配置修改
2.0 FOR NEW USER
2.0.1 JBOSS 的一点说明
$JBOSS-HOME/server/下有3个目录,all/default/minimal

转载于:https://www.cnblogs.com/shitou/archive/2011/04/13/2015168.html

linux下apache和jboss集群和负载均衡相关推荐

  1. linux下apache tomcat jk集群,apache tomcat 负载均衡集群和session复制 基于jk

    apache服务器和tomcat的连接方法其实有三种:JK.http_proxy和ajp_proxy,本文主要介绍最为常见的JK. 基于centos5.5 linux下配置: 1.安装tomcat7. ...

  2. linux下apache tomcat jk集群,apache+tomcat+JK 集群 并发上不去

    问题:并发一直上不去.求大神指点. 测试机环境:Red hat6.3 IBM 8G 内存 4核处理器 主要配置清单: httpd-mpm.conf ServerLimit      4000 Star ...

  3. linux下离线安装k8s集群1.19.4附带nfs存储(kubeadm方式)

    linux下离线安装k8s集群1.19.4附带nfs存储 活动地址:毕业季·进击的技术er  一,环境简介 kubernetes-1.19.4集群部署计划 序号 服务器配置 IP地址 操作系统 备注 ...

  4. Linux下搭建Lotus Domino集群

    Linux下搭建Lotus Domino 集群 本文内容是Linux平台下Lotus Domino服务器部署案例(http://chenguang.blog.51cto.com/350944/1334 ...

  5. LINUX 下 配置MySQL数据库集群

    LINUX 下 配置MySQL数据库集群 MySQL数据库集群进行正确配置步骤(1) 此文章主要向大家讲述的是对MySQL数据库集群进行正确配置的实际操作步骤,以及对其概念的讲述,如果你对其相关的实际 ...

  6. linux下离线配置voltdb集群

    linux下离线配置voltdb集群 系统环境:centos7.5最小化安装,因为是内网环境所以配置了私有yum源. 同一网络下的三台服务器,192.168.1.10.192.168.1.11.192 ...

  7. 结合Apache和Tomcat实现集群和负载均衡

    http://fableking.iteye.com/blog/360870 TomcatApacheJSP应用服务器Web  本文基本参考自 轻松实现Apache,Tomcat集群和负载均衡,经由实 ...

  8. 在Linux上使用Nginx为Solr集群做负载均衡

    在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxy ...

  9. 利用LVS(Linux Virtual Server)系统实现Web服务器集群的负载均衡

    利用LVS(Linux Virtual Server)系统实现Web服务器集群的负载均衡 LVS系统结构与特点: 1. Linux Virtual Server:简称LVS.是基于Linux服务器集群 ...

最新文章

  1. SpringBoot整合Spring Security
  2. 使用XFire+Spring构建Web Service(一)——helloWorld篇
  3. 阿里云服务器购买该如何选择?阿里云服务器购买步骤流程介绍...
  4. 01数字基带信号及其频谱特性
  5. [Sdoi2010] 地精部落
  6. 我对软件开发的一点思考
  7. 【JVM】第四章 Java内存模型
  8. scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class
  9. 【学习笔记】cs231n-assignment1-two_layer_net
  10. 生物信息学:根据PDB名称、爬虫PDB数据库的信息、保存到Excel里
  11. 苹果Mac突然没有声音,3 种方法快速解决没声音的问题
  12. Echarts 2dMap阴影,多个map分层现象以及飞线飞机航线
  13. python获取四六级成绩单
  14. symlink() 函数
  15. c语言信封大小,A1、B1、C1的国际标准纸张的大小尺寸各是多少啊?
  16. 关于色光三原色与颜料三原色
  17. 【MMDetection 源码解读之yolov3】Neck - FPN
  18. Java 获取年份-月份
  19. MySQL查询优化实例
  20. 交叉验证(Cross-Validation)

热门文章

  1. 【题解】 [HNOI2015]落忆枫音 (拓扑排序+dp+容斥原理)
  2. linux 新建用户和权限分配
  3. 注解提高篇:自定义注解处理器(APT)
  4. 数据库SQL语句学习笔记(3)-排序检索数据
  5. 连载《一个程序猿的生命周期》-27、新招的两位“高管”相继离职
  6. css使用1-搜狐浏览器和chrome浏览器不同点记录
  7. “Razor” – a new view engine for ASP.NET
  8. 完成端口模式下的高性能网络服务器【转】
  9. 玩转AppBarLayout,更酷炫的顶部栏
  10. CoordinatorLayout