linux下apache和jboss集群和负载均衡
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集群和负载均衡相关推荐
- linux下apache tomcat jk集群,apache tomcat 负载均衡集群和session复制 基于jk
apache服务器和tomcat的连接方法其实有三种:JK.http_proxy和ajp_proxy,本文主要介绍最为常见的JK. 基于centos5.5 linux下配置: 1.安装tomcat7. ...
- linux下apache tomcat jk集群,apache+tomcat+JK 集群 并发上不去
问题:并发一直上不去.求大神指点. 测试机环境:Red hat6.3 IBM 8G 内存 4核处理器 主要配置清单: httpd-mpm.conf ServerLimit 4000 Star ...
- linux下离线安装k8s集群1.19.4附带nfs存储(kubeadm方式)
linux下离线安装k8s集群1.19.4附带nfs存储 活动地址:毕业季·进击的技术er 一,环境简介 kubernetes-1.19.4集群部署计划 序号 服务器配置 IP地址 操作系统 备注 ...
- Linux下搭建Lotus Domino集群
Linux下搭建Lotus Domino 集群 本文内容是Linux平台下Lotus Domino服务器部署案例(http://chenguang.blog.51cto.com/350944/1334 ...
- LINUX 下 配置MySQL数据库集群
LINUX 下 配置MySQL数据库集群 MySQL数据库集群进行正确配置步骤(1) 此文章主要向大家讲述的是对MySQL数据库集群进行正确配置的实际操作步骤,以及对其概念的讲述,如果你对其相关的实际 ...
- linux下离线配置voltdb集群
linux下离线配置voltdb集群 系统环境:centos7.5最小化安装,因为是内网环境所以配置了私有yum源. 同一网络下的三台服务器,192.168.1.10.192.168.1.11.192 ...
- 结合Apache和Tomcat实现集群和负载均衡
http://fableking.iteye.com/blog/360870 TomcatApacheJSP应用服务器Web 本文基本参考自 轻松实现Apache,Tomcat集群和负载均衡,经由实 ...
- 在Linux上使用Nginx为Solr集群做负载均衡
在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxy ...
- 利用LVS(Linux Virtual Server)系统实现Web服务器集群的负载均衡
利用LVS(Linux Virtual Server)系统实现Web服务器集群的负载均衡 LVS系统结构与特点: 1. Linux Virtual Server:简称LVS.是基于Linux服务器集群 ...
最新文章
- SpringBoot整合Spring Security
- 使用XFire+Spring构建Web Service(一)——helloWorld篇
- 阿里云服务器购买该如何选择?阿里云服务器购买步骤流程介绍...
- 01数字基带信号及其频谱特性
- [Sdoi2010] 地精部落
- 我对软件开发的一点思考
- 【JVM】第四章 Java内存模型
- scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class
- 【学习笔记】cs231n-assignment1-two_layer_net
- 生物信息学:根据PDB名称、爬虫PDB数据库的信息、保存到Excel里
- 苹果Mac突然没有声音,3 种方法快速解决没声音的问题
- Echarts 2dMap阴影,多个map分层现象以及飞线飞机航线
- python获取四六级成绩单
- symlink() 函数
- c语言信封大小,A1、B1、C1的国际标准纸张的大小尺寸各是多少啊?
- 关于色光三原色与颜料三原色
- 【MMDetection 源码解读之yolov3】Neck - FPN
- Java 获取年份-月份
- MySQL查询优化实例
- 交叉验证(Cross-Validation)
热门文章
- 【题解】 [HNOI2015]落忆枫音 (拓扑排序+dp+容斥原理)
- linux 新建用户和权限分配
- 注解提高篇:自定义注解处理器(APT)
- 数据库SQL语句学习笔记(3)-排序检索数据
- 连载《一个程序猿的生命周期》-27、新招的两位“高管”相继离职
- css使用1-搜狐浏览器和chrome浏览器不同点记录
- “Razor” – a new view engine for ASP.NET
- 完成端口模式下的高性能网络服务器【转】
- 玩转AppBarLayout,更酷炫的顶部栏
- CoordinatorLayout