Linux(Ubuntu)下apache tomcat mod_jk实现负载均衡全过程
辛苦码字,转载请注明出处!一、系统简介
Ubuntu 10.04.4 LTS64位操作系统
Linux2.6.32-41-genericx86_64 GNU/Linux(其他Linux版本的安装方法大致相同)
1个apache2个tomcat在同一台电脑上的配置
二、本实例所用软件:
1、apache安装软件
httpd-2.4.2.tar.gz 点此下载:
apr-1.4.6.tar.gz 点此下载:
apr-util-1.4.1.tar.gz 点此下载:
pcre-8.30.tar.gz 点此下载:
2、JDK安装软件
安装JDK要根据自己电脑系统去官方网站选择合适的版本下载。
本例下载的是:jdk-7u3-linux-x64.tar.gz
3、Tomcat安装软件
apache-tomcat-7.0.27.tar.gz 点此下载:
4、JK模块
tomcat-connectors-1.2.35-src.tar.gz 点此下载:
软件准备完毕
三、安装软件
注:为了避免权限限制,本例所有操作都是以root用户操作。
软件安装目录: /usr/local
1、安装并测试apache
首先先安装apr、apr-util以及pcre,这个在安装apache的时候会用到。(ps:安装apache时系统会检测有没有这些文件支持。)
[*]安装apr
tar -zxvfapr-1.4.6.tar.gz # 解压安装文件
cd apr-1.46 # 进入解压出来的文件夹:apr-1.46
./configure--prefix=/usr/local/apr # 设置apr的安装目录 本例设置为:/usr/local/apr
make && make install #编译并安装apr
apr安装完成
[*] 安装apr-util
tar -zxvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
apr-util安装完成
[*] 安装pcre
tar -zxvf pcre-8.30.tar.gz
cd pcre-8.30
./configure--prefix=/usr/local/pcre
make && make install
pcre安装完成
[*] 安装apache
tar -zxvf httpd-2.4.2.tar.gz
cd httpd-2.4.2
./configure --prefix=/usr/local/apache2--with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util--with-pcre=/usr/local/pcre --enable-so
make && make install
至此,apache安装完成。
[*] 测试
/usr/local/apache2/bin/apachectl start
在地址栏输入:127.0.0.1 出现 IT works!页面 apache安装成功
2、安装并测试JDK
[*]安装
tar -zxvf jdk-7u3-linux-x64.tar.gz
mv jdk1.7.0_03 ./jdk #这个只是改变JDK的目录,也可以不改,在后边设置环境变量要注意路径设置
下载的这个版本的JDK是免安装软件,解压缩之后就安装完成
[*]配置环境变量
vi /etc/profile (新手对vi编辑器不熟悉的话,可以在图形化界面用gedit /etc/profile )
在文件最后加上
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
保存退出
source /etc/profile #上载刚才对profile文件的更改
[*]测试
在终端输入命令:
java -version
出现以下信息表示java运行环境配置成功
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)
##如果提示JAVA_HOME找不到,可尝试把JAVA_HOME在 /etc/enviroment 文件中做定义##
vi /etc/enviroment
在空白处增加:
export JAVA_HOME=/usr/local/jdk
:wq保存退出
source /etc/enviroment
再进行测试。
3、安装并测试tomcat
[*]安装
tar -zxvf apache-tomcat-7.0.27.tar.gz
cp -r apache-tomcat-7.0.27 /usr/local/tomcat1
mv apache-tomcat-7.0.27 /usr/local/tomcat2
[*]配置tomcat运行环境
修改tomcat运行环境
vi /etc/profile
在文件最后加入两行:
export CATALINA_1_HOME=/usr/local/tomcat1
export CATALINA_2_HOME=/usr/local/tomcat2
保存退出
[*]修改tomcat1/bin/catalina.sh
vi /usr/local/tomcat1/bin/catalina.sh
在注释结束的地方,大概第99行加入一句:
CATALINA_HOME=$CATALINA_1_HOME
保存退出
[*]修改tomcat2/bin/catalina.sh
vi /usr/local/tomcat2/bin/catalina.sh
位置与tomcat1相同,加入:
CATALINA_HOME=$CATALINA_2_HOME
保存退出
[*]配置tomcat端口信息
tomcat1不用做修改,因为两台tomcat在同一台电脑上,修改端口避免冲突
vi /usr/local/tomcat2/conf/server.xml
共修改3处:
修改8005
修改8080
修改8009
本例修改如下:
#本端口在做整合的时候要用
[*]测试tomcat
分别运行:
/usr/local/tomcat1/bin/startup.sh
/usr/local/tomcat2/bin/startup.sh
打开浏览器输入地址:
localhost:8080
localhost:8180
出现tomcat 猫的界面,tomcat安装成功
4、生成mod_jk.so模块
[*]安装JK模块
tar -zxvf tomcat-connectors-1.2.35-src.tar.gz
cd tomcat-connectors-1.2.35-src/native/
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-java-home=/usr/local/jdk
make && make install
运行apache下的apxs,如果返回如下结果,证明正常。
cd /usr/local/tomcat-connectors-1.2.35-src/native/apache-2.0
/usr/local/apache2/bin/apxs -n jk2 -i mod_jk.so
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' mod_jk2.so /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp mod_jk.so /usr/local/apache2/modules/
cp mod_jk.so /usr/local/apache2/modules/mod_jk.so
Warning!dlname not found in /usr/local/apache2/modules/mod_jk.so.
Assuming installing a .so rather than a libtool archive.
cp mod_jk.so /usr/local/apache2/modules/
chmod 755 /usr/local/apache/modules/mod_jk.so
ll /usr/local/apache/modules/mod_jk.so
-rwxr-xr-x 1 root root 709215 08-14 10:22 /usr/local/apache/modules/mod_jk.so
说明mod_jk.so生成成功。
四、整合实现负载均衡
1、配置apache中mod_jk.so运行所需文件
在Apache的conf目录中创建文件workers.properties和uriworkermap.properties
vi /usr/local/apache2/conf/workers.properties
加入如下内容
worker.list=master , jkstatus (ps:“master”名称可以自己更改,但要保证和文件uriworkermap.properties中统一)
worker.tomcat1.port=8009 (ps:此处端口和tomcat中的配置需一致)
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
# Define preferred failover node for tomcat1
# worker.tomcat1.redirect=tomcat2
worker.tomcat2.port=8109
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
# Disable tomcat2 for all requests except failover
# worker.tomcat2.activation=disabled
worker.master.type=lb
worker.master.balance_workers=tomcat1,tomcat2
worker.jkstatus.type=status
保存退出
以上注释掉的两行如果开启,则tomcat2成为tomcat1的备用,在tomcat1不可用的情况下才会向tomcat2请求
vi /usr/local/apache2/conf/uriworkermap.properties
加入如下内容:
/admin/*=master
/manager/*=master
/jsp-examples/*=master
/servlets-examples/*=master
/examples/*=master
/*.jsp=master
!/servlets-examples/*.jpeg=master
/jkmanager=jkstatus
!/*.gif=master
!/*.jpg=master
!/*.png=master
!/*.css=master
!/*.js=master
!/*.htm=master
!/*.html=master
保存退出
2、配置tomcat中mod_jk.so运行所需文件
vi /usr/local/tomcat1/conf/server.xml
在这个位置修改:
修改后:
然后在这个位置:
修改后:
(PS:注意此处是在tomcat1的server.xml文件中,指向tomcat2,在tomcat2的文件中指向tomcat1)
同样也修改tomcat2的server.xml文件中
和tomcat1相同。
保存退出
至此,整合完成。
3、在/usr/local/apache2/htdocs下创建测试文件test.jsp
vi /usr/local/apache2/htdocs/test.jsp
Hello!The time is now
五、测试成果
启动tomcat 和httpd 服务
/usr/local/tomcat1/bin/startup.sh
/usr/local/tomcat2/bin/startup.sh
/usr/local/apache2/bin/apachectl restart
测试
打开浏览器访问localhot/test.jsp 时输出
Hello! The time is now(当前时间)
访问 localhost/jkmanager 可以查看状态,可以看到每次请求依次连接到每个tomcat上
大功告成。
辛苦码字,转载请注明出处!
参阅资料及网站:http://blog.iyunv.com/ppzlyg/article/details/6170045
http://blog.iyunv.com/chaijunkun/article/details/6987443
https://www.ibm.com/developerworks/cn/
页:
[1]