apache/jboss整合
服务器linux 系统版本(32位系统): centos 5.3
mysql-5版本: mysql-5.1.38-linux-i686-icc-glibc23.tar.gz
apache版本: httpd-2.2.13.tar.gz
jboss版本:jboss4 版本 jboss-4.0.5.GA.zip
jdk版本 :1.5 版本 jdk-1_5_0_08-linux-i586-rpm.bin
apache 与 jboss集成,使用 jakarta-tomcat-connectors-jk-1.2.6-src.tar.gz
一.mysql安装
# groupadd mysql
# useradd -g mysql mysql
# tar zxvf mysql-5.1.38-linux-i686-icc-glibc23.tar.gz
# ln -s /usr/local/mysql-5.1.38-linux-i686-icc-glibc23 mysql
# cd /usr/local/mysql
# chown -R mysql .
# chgrp -R mysql .
# scripts/mysql_install_db --user=mysql
# chown -R root .
# chown -R mysql data
# vi /usr/local/mysql/support-files/my-medium.cnf
在后面加上
max_connections = 1500 /*为允许的最大连接数*/
log-slow-queries /*打开低速查询日志*/
long_query_time = 5 /*低速查询的秒数*/
# cp /usr/local/mysql/support-files/my-medium.cnf /usr/local/mysql/data/my.cnf
# /usr/local/mysql/bin/mysqld_safe --user=mysql --basedir=/usr/local/mysql &
# echo '/usr/local/mysql/bin/mysqld_safe --user=mysql --basedir=/usr/local/mysql &' >> /etc/rc.local /*添加到启动文件*/
让系统找到mysql(如果必要的话):
# PATH=$PATH:/usr/local/mysql/bin
# export PATH
# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
# ldconfig
继续配置 mysql,使其在系统启动时自动启动:
# cp support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
# service mysqld restart
# ./bin/mysqladmin -u root password new-password
二.jdk安装
# chmod +x jdk-1_5_0_08-linux-i586.bin
# ./jdk-1_5_0_08-linux-i586.bin
然后就会出现协议,问你同意否,yes继续安装......然后在所在目录下出现了一个jdk1.5.0_08 表示安装成功
设置环境变量
# vi .bash_profile
打开了一个文本,在文本最后加入如下代码
#set java environment
JAVA_HOME=/usr/java/jdk1.5.0_08
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH
保存后关闭文本编辑器执行以下命令使更改生效
# source .bash_profile
# echo $JAVA_HOME
如果显示"/usr/java/jdk1_5_0_08(上面设置的环境变量)"说明设置成功。到此jdk就O了
测试:
创建文件:Hello.java
vi Hello.java
添加一下内容:
public class Hello
{
public static void main (String[] args)
{
System.out.println("Hello,java");
}
}
在当前目录下终端输入:
[root@localhost jdk1.5.0_08]# java Hello
Hello,java
测试OK!
三.jboss安装
安装文件:jboss.4.0.5.GA.zip
进入安装文件所在目录 解压文件到当前目录
# unzip jboss-4.0.5.GA.zip
出现jboss-4.0.5.GA目录
设置环境变量
# vi /etc/profile
打开了一个文本,在文本最后加入如下代码
JBOSS_HOME=/usr/local/jboss-4.0.5.GA
export JBOSS_HOME
PATH=$PATH:$JBOSS_HOME/bin
export PATH
保存后关闭文本编辑器执行命令使更改生效
# source /etc/profile
# echo $JBOSS_HOME
如果显示"/usr/local/jboss-4.0.5.GA(上面设置的环境变量)"说明设置成功。
设置自动启动
# cp $JBOSS_HOME/bin/jboss_init_redhat.sh /etc/init.d/jboss
# vi /etc/init.d/jboss
如果想支持全部IP,可以在该文件一开始追加以下内容
JBOSS_HOST=${JBOSS_HOST:-"0.0.0.0"}
修改以下内容
18:JBOSS_HOME=${JBOSS_HOME:-"/usr/local/jboss-4.0.5.GA"}
21:JBOSS_USER=${JBOSS_USER:-"root"}
24:JAVAPTH=${JAVAPTH:-"/usr/java/jdk1.5.0_08/bin"}
保存退出 设置JBoss启动sh文件
设置启动脚步
# ln -s /etc/init.d/jboss_init_redhat.sh /etc/rc3.d/K20jboss_init_redhat
# ln -s /etc/init.d/jboss_init_redhat.sh /etc/rc3.d/S80jboss_init_redhat
# ln -s /etc/init.d/jboss_init_redhat.sh /etc/rc5.d/K20jboss_init_redhat
# ln -s /etc/init.d/jboss_init_redhat.sh /etc/rc5.d/S80jboss_init_redhat
设置运行权限
# chmod -f 777 /etc/init.d/jboss
# chmod -f 777 /etc/rc3.d/S80jboss_init_redhat
# chmod -Rf 777 $JBOSS_HOME
添加jboss用户并分配组
# useradd jboss
# usermod -G jboss,root jboss
到这jboss就能随系统一起启动了。在Linux关闭的时候,它是以Kill的形式关闭JBoss进程的,不是很安全。我们可以做以下设置,让Linux在关闭的时候安全的关闭JBoss
我们修改的仍然是</etc/init.d/jboss>文件。
为了不引起混乱,我用的仍然是修改以前的行号
1.在76和77行之间插入以下代码
if [ -f /var/lock/subsys/jboss ];then
echo "Running jboss"
else
2.在82和83行之间插入以下代码
echo "Starting jboss"
touch /var/lock/subsys/jboss
fi
3.在84和85行之间插入以下代码
if [ -f /var/lock/subsys/jboss ];then
4.在89和90行之间插入以下代码
echo "Stopping jboss"
rm /var/lock/subsys/jboss
else
echo "Not Running jboss"
fi
这样的话,关闭Linux的时候JBoss就可以安全的关闭了。
现在先手动启动jboss
# /usr/local/jboss-4.0.5.GA/bin/run.sh &
(因为配了"PATH"所以在哪个目录下都可以执行)。然后出现在了jboss的log信息
访问http://localhost:8080出现jboss页面,jboss看式O了
但你可以试一下http://你的ip地址:8080访问一下,或远程局域网其它机器访问。出现在404 问题又来了
问题:Redhat AS4服务器(多网卡)上安装Jboss 4.0.5 GA后,只能从本地地址localhost或127.0.0.1访问80或8080端口,也即http://127.0.0.1,而不能使用本机的公网地址访问
开始以为是防火墙的问题,修改了防火墙策略,还是不行。
用以下命令参看
# netstat –na|grep 8080
出现tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 发现绑定到127.0.0.1上:
因此应该是jboss启动时候绑定到了本地回路(Local Loopback )lo网卡上了
解决:修改$JBOSS_HOME/server/default/deploy/jbossweb-tomcat55.sar/server.xml,将
${jboss.bind.address}修改为0.0.0.0,允许从eth0,eth1,lo都能够访问jboss 8080端口
修改后访问http://你的ip地址:8080,jboss页面出来了! jboss到这才O了
四.apache2安装
# cd httpd-2.2.13
# ./configure --prefix=/usr/local/apache2 --enable-module=so --enable-module=ssl --enable-module=most --enable-rule=EAPI --enable-shared=max --enable-shared=ssl
# make
# make install
启动 apache
# /usr/local/apache2/bin/apachectl start
让 Apache 自动启动:
# echo "/usr/local/apache2/bin/apachectl start &" >> /etc/rc.local
五.linux下 jk方法实现apache+jboss连接
# tar xzvf jakarta-tomcat-connectors-1.2.6-src.tar.gz
# cd jakarta-tomcat-connectors-jk-1.2.6-src/jk/native
# ./buildconf.sh (若有问题,安装autoconf automake litool)
# ./configure --enable-jni --enable-EAPI --with-apxs=/usr/local/apache2/bin/apxs
# make
# cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules/
配置
在/usr/local/apache2/conf/下面建立两个配置文件mod_jk.conf和workers.properties。
R 生成配置文件 mod_jk.conf
# vi mod_jk.conf
添加内容:
# 指出以下mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /usr/local/apache2/conf/workers.properties
# 指出 mod_jk 模块的日志输出位置
JkLogFile /usr/local/apache2/logs/mod_jk.log
# 设置 mod_jk 模块的日志级别 [debug/error/info]
JkLogLevel info
# 设置 mod_jk 模块的日志格式
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"
# 将所有对特定文件或目录的请求通过ajp13的协议送给JBoss,让JBoss服务器来处理
#(用于测试配置是否成功,配置成功后请注释)
JkMount /web-console/* worker1
# 将所有对后台(带有/xxxx目录)的请求通过ajp13的协议送给JBoss,让JBoss服务器来处理
JkMount /xxxx/* worker1
R 生成配置文件 workers.properties
# vi workers.properties
添加以下内容:
# 让 mod_jk 模块知道 Tomcat 在哪里
workers.tomcat_home=$JBOSS_HOME/server/all/deploy/jbossweb-tomcat55.sar
# 让 mod_jk 模块知道 JDK 在哪里
workers.java_home=$JAVA_HOME
ps=\
# Defining a worker named worker1 and of type ajp13
worker.list=worker1
# Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
R 修改配置文件httpd.conf,作以下修改:
1. 将Listen 80 修改为 Listen 127.0.0.1:80
2. 将ServerName 修改为 ServerName LocalHost:80
3. 如果网页放在/var/www/html下,就需要修改DocumentRoot,具体根据实际情况来定,代码如下:
DocumentRoot "/var/www/html"
< Directory "/var/www/html">
Options Includes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
XBitHack on
< /Directory>
4. 增加关于加载mod_jk的语句,代码如下:
LoadModule jk_module modules/mod_jk.so
Include /usr/local/apache2/conf/mod_jk.conf
运行
启动JBoss,在$JBOSS_HOME/bin/目录下以sh run.sh -c all 命令启动JBoss服务器;
启运Apache,如果启动成功,说明对配置文件的修改没有问题;
打开IE浏览器,输入 http://localhost/web-console/,如果能看到JBoss的Administration Console页面,说明Apache与JBoss服务器整合成功了。