大致步骤:
一、安装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>