linux下配置apche2.2.6 && tomcat5.5集群

linux下配置apche2.2.6 && tomcat5.5集群

到Apache官方网站下载所需要的文件:
httpd-2.2.6.tar.gz

apache-tomcat-5.5.23.tar.gz

mod_jk-1.2.27-httpd-2.2.6.so

一、安装apache

# tar xzvf httpd-2.2.6.tar.gz

# cd httpd-2.2.6

# ./configure --prefix=/usr/local/apache2 --enable-so
说明:--prefix为指定apache的安装路径(请按实际情况修改),其它项为预安装的模块, 除了 --enable-so 项外(--enable-so参数启用共享模块功能),可指定其它模块以后再安装

# make
# make install



二、复制mod_jk到modules

将 mod_jk-1.2.27-httpd-2.2.6.so放到apache下的modules文件夹下,并改名为mod_jk.so

注:mod_jk.so文件也可以在

http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/下载。

(mod_jk-1.2.27-httpd-2.2.6.so is for Apache 2.2.x and works with Apache 2.2.6 and later;

如果这样则不需要编译tomcat-connectors-1.2.26-src.tar.gz。)

如果此处的mod_jk.so是通过其它方法或者途径得到的,在后面启动apache的时候可能会提示:

Cannot load /usr/local/termite/apache/modules/mod_jk.so into server: /usr/local/termite/apache/modules/mod_jk.so: invalid ELF header
#file mod_jk.so

可能会显示 mod_jk.so: MS-DOS executable (EXE), OS/2 or MS Windows
而正确的应该显示

mod_jk.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped 



三、在apache/conf/下面建立两个配置文件mod_jk.conf和workers.properties。

#cd /usr/local/apache2/conf/

# vi mod_jk.conf

添加如下内容:

#########################################################################

# 指出mod_jk模块工作所需要的工作文件workers.properties的位置

JkWorkersFile conf/workers.properties



# Where to put jk logs
JkLogFile logs/mod_jk.log



#Set the jk log level [debug/error/info]
JkLogLevel error



#将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理

JkMount /*.jhtml controller
JkMount /*.do controller



JkMountCopy all #详细见下面说明

注意:使用mod_jk 1.2.6+时,如果你希望声明一个全局的JkMount's或者JkMountFile's来代替每个虚拟主机,你需要引入’JkMountCopy all’作为全局变量。如果你不想为每个虚拟主机拷贝同样的JkMount/MkMountFile,你需要在虚拟主机指令中声明’JkMountCopy On’。如果不加入此项,则负载均衡会失败!



########################################################################

# vi workers.properties

添加内容如下:

#######################################################################

worker.list=controller

#========tomcat1========
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1

#========tomcat2========
worker.tomcat2.port=9009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1

#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2
worker.controller.sticky_session=true
worker.controller.sticky_session_force=false

#######################################################################

说明如下:

################################3

1、其中worker.tomcat1.host中,tomcat1代表节点名,host值为节点IP, 如果有更多节点,顺序定义更多的node段,并在worker.controller.balance_workers后全部列出。

2、lbfactor是负载分配权重,值越大分配的负载越多。

3、worker.controller.sticky_session,设置为1或true使用粘着session,设置为0或false不使用粘着session。如果sticky_session设为true时,建议sticky_session_force设为false,此参数表明如果集群中某台服务器在多次请求没有响应后,将转发当前的请求到其它服务器上处理;sticky_session=false时,影响比较大,会导致转发到其它服务器上的请求,找不到原来的session,所以如果此时请求中有读取session中某些信息的话,就会导致应用的null异常。sticky_session、sticky_session_force的默认值分别为true,false。

sticky_session   sticky_session_force             含义
     true             false            SESSION会复制,有粘性
     true             true             SESSION不复制,有粘性
     false            false            SESSION会复制,无粘性
     false            true             SESSION会复制,无粘性

#################################



四、配置httpd.conf

1、在最后加入:

增加关于加载mod_jk的语句:
LoadModule jk_module modules/mod_jk.so

Include conf/mod_jk.conf

2、注意,apache默认配置的虚拟主机是没有访问权限,需要设置:

找到

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

将Deny 改为:allow

3、去掉前面的#符号

Include conf/extra/httpd-vhosts.conf
编辑httpd-vhosts.conf文件:添加虚拟主机:

<VirtualHost *:80>
    DocumentRoot D:/www/cpay
    ServerName www.e-baotong.com.cn
    ServerAlias e-baotong.com.cn
    DirectoryIndex  index.htm
</VirtualHost>



五、配置tomcat5.5

tomcat5.5的安装请参见:http://blog.sina.com.cn/s/blog_56d8ea900100bz2w.html



安装完之后,请配置server.xml文件,将

<Connector port="8009"
               enableLookups="false" redirectPort="8443" debug="0"
               protocol="AJP/1.3" URIEncoding="UTF-8"/>

打开。其他port可以关闭



六、测试服务

启动apache和各节点jboss服务
Apache启动和停止:
/usr/local/termite/apache/bin/apachectl start
/usr/local/termite/apache/bin/apachectl stop
或在/usr/local/termite/apache/bin目录下执行./httpd -k start,./httpd -k stop



其它:集群中webapp多节点更新方法:

1、自定义shell,scp命令实现

2、用sync来搞,同步的方式

  如果是程序发布,就直接先打成war包,然后再在远程写个脚本一执行就可以了,这样比较保险;

  如果是频繁的更新小文件,为了更新起来快一些,就用sync。

你可能感兴趣的:(apache,tomcat,linux,应用服务器,jboss)