/ 中存储网

整合Apache和JBoss并建立虚拟主机站点的方法

2013-09-23 13:38:01 来源:itjs.cn

大致步骤:

一、安装apache

二、安装JDK,作为JBOSS的运行环境

三、安装JBOSS

四、安装及配置mod_jk,用以apache和JBOSS之间的通信

五、配置虚拟主机,把动态资源交给JBOSS处理

安装apache:

1、 安装:yum

2、 配置:自行配置!对于虚拟主机,后面会提到。

安装JDK:

1、 安装:

如果JBOSS的版本比较低,要注意JDK版本的匹配;对于新版本的JBOSS,JDK 1.6版本一般都可以:  

chmod 744 jdk-6u24-linux-i586.bin

   ./ jdk-6u24-linux-i586.bin

2、 设置JDK的环境变量:

vi /etc/profile,在文件末尾添加环境变量,详细设置参考:http://share.blog.51cto.com/278008/498313

Linux里可以设置环境变量的文件有好几个,这里总结一下:

/etc/profile

   /etc/bashrc

   ~/.bash_profile

   ~/.bashrc

这几个文件的执行顺序为:/etc/profile--->/etc/bashrc--->~/.bash_profile--->~/.bashrc

/etc/profile:设置全局变量,对所有用户(即使该用户未登陆shell)都有效

/etc/bashrc:设置全局变量,对所有登陆shell的用户有效。shell的history时间设置等,都在这里

 ~/.bash_profile:设置用户的shell信息

 ~/.bashrc:设置用户的shell信息,每当用户登陆或打开新的shell时,该文件被读取

安装JBOSS:

 1、 关于JBOSS的版本及其后缀:打开JBOSS的下载页面,会发现JBOSS除了版本众多外,相同的主版本号还有不同的后缀,比如SP、CR、Beta、Alpha、M、Final、GA等等,我们所部署的JBOSS,应该是Final、GA或没有后缀的版本

 2、 安装:详细步骤参考:http://share.blog.51cto.com/278008/498313

安装mod_jk:

1、 关于jk版本的选择:

 首先,我们应该选择的是jk而不是jk2;

 其次,jk版本还要跟apache版本保持匹配,如,我的apache是2.2版本,那么jk版本就应该是mod_jk-1.2.31-httpd-2.2.x.so,而不是mod_jk-1.2.31-httpd-2.0.x.so

2、 下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/

3、 安装配置:

 一、安装:把下载到的mod_jk-1.2.31-httpd-2.2.x.so文件复制到apache安装目录的modules目录下即可。我的目录:/etc/httpd/modules。

 二、配置:主要是建两个文件,mod_jk.conf和workers.properties!

 两个文件的作用:

 mod_jk.conf,用于配置mod_jk的信息,指定workers.properties文件位置,配置jk日志位置、格式等;

 workers.properties,用来配置应用服务器(tomcat、jboss等)的信息,如jboss的连接地址,端口等;若想做负载均衡,也是在此文件中进行定义各个worker节点的信息;

vi mod_jk.conf:

LoadModule jk_module modules/mod_jk.so

   JkWorkersFile conf.d/workers.properties

   JkLogFile logs/mod_jk.log

   JkLogLevel  info

   JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

vi workers.properties:

#Define worker list

   worker.list=apps

   #Set properties for worker1 (jboss/tomcat)

   worker.jboss.type=ajp13

   worker.jboss.host=localhost

   worker. jboss.port=8009

   worker.jboss.lbfactor=1

   worker.jboss.socket_timeout=300

   worker.jboss.socket_keepalive=true

   #Set properties for worker2 (jboss/tomcat)

   # worker.jboss2.type=ajp13

   #worker.jboss2.host=10.10.19.59

   #worker. jboss2.port=8009

   #worker.jboss2.lbfactor=1

   #worker.jboss2.socket_timeout=300

   #worker.jboss2.socket_keepalive=true

   #Set loadbalance properties

   worker.apps.type=lb

   #worker.apps.balance_workers=jboss,jboss2

   worker.apps.balance_workers=jboss

注:关于mod_jk.conf和workers.properties文件的各个详细参数,参考官方文档http://tomcat.apache.org/connectors-doc;

文档特别指出,cache_size、cache_timeout、balanced_workers等参数已经弃用。

编辑好了两个文件后, apache如何加载它们呢?

首先,确保apache会自动加载conf.d目录下的配置文件:

vi httpd.conf,注释掉下面一行,如未找到该行,则手动添加:

Include conf.d/*.conf

然后,把配置文件放到ServerRoot下的conf.d中,apache就会自动加载了。

配置虚拟主机:

尽量不要把虚拟主机的配置直接写到httpd.conf文件中,最好像配置mod_jk那样,把虚拟主机的配置写到一个单独的文件里,放到conf.d目录下,让apache去加载它,这其实是apache配置的模块化。

1、编辑httpd.conf配置文件,确保虚拟主机能正常运行:

 首先,确保apache会加载conf.d目录下的配置文件(前面已经做过配置);

 其次,注释掉原有的DocumentRoot配置,因为每个虚拟主机都有自己的DocumentRoot;

 然后,注释掉原有的ServerName配置,每个虚拟主机都有自己的ServerName;

 最后,如果每个虚拟主机想要单独进行访问限制,则注释掉<Directory />...</Directory>

 注:如果不是做虚拟主机,而仅仅是整合apache和jboss,则还需要添加默认首页:DirectoryIndex index.html index.htm index.jsp

2、编辑虚拟主机的配置文件:

apache有一个自带的关于虚拟主机配置的样本文件,一般为conf/extra/httpd-vhosts.conf,但是我在自己的系统中没有找到,就从网上下载了一个标准文件放到了conf.d目录下,然后做相应的修改。

我的是基于域名的虚拟主机,两个网站,其中一个需要jboss做应用服务器,配置如下:

NameVirtualHost *:80

   <VirtualHost *:80>

      DocumentRoot /var/www/bao_web

      ServerName www.bao.hdtmedia.com

   </VirtualHost>

   <VirtualHost *:80>

    DocumentRoot /var/www/html

    ServerName wap.imocha.cn

    ErrorLog /etc/httpd/logs/imocha_err_log

    <Directory "/var/www/html">

      Options Indexes FollowSymLinks

      AllowOverride None

      Order allow,deny

      Allow from all

   </Directory>

    JkMount /* apps

   </VirtualHost>