apache+tomcat+mod_jk 搭建负载均衡系统。
0.os系统采用centos6.8 x64 2.6.32-642.el6.x86_64
1.首先安装好jdk环境本次采用jdk-8u111-linux-x64.gz
jdk和jre的安装目录要不同,否则的话lib目录下没有dt.jar 和tools.jar
要配置好环境变量如下
vi /etc/profile
#add zwy 2017-08-29
export JAVA_HOME=/home/zhang/java/jdk1.8.0_111
export JRE_HOME=/home/zhang/java/jdk1.8.0_111/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export LD_LIBRARY_PATH=/usr/local/apr/lib
source /etc/profile
java -version 如果能显出版本号,说明jdk安装好了。
2.安装好tomcat。本次tomcat使用7.0.95 x64位
2-1注意要修改/usr/local/tomcat/conf 下的文件server.xml
shutdown 8005 *****connect http port 8080 *****connect ajp port 8009这三个端口每个进程要不同,否则发生端口占用问题。
2-2修改jvmroute 为tomcat1实例名字并打开负载均衡
<Connector port="11009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost"
jvmRoute="tomcat1"> 修改此处的jvmRoute
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 去掉前面的注释
*************************************************************************
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
添加此句修改网站的默认目录
<Context path="" docBase="/usr/local/tomcat/webapps/zwy/" debug="0"/>
</Host>
2-3 根据情况在tomcat1/webapps/zwy 下添加一个内容为1的index.html内容。为了后面测试方便
根据情况在tomcat2/webapps/zwy 下添加一个内容为2的index.html内容。
2-4 catalina.sh在文件末尾添加CATALINA_HOME
CATALINA_HOME=/usr/local/apache-tomcat-7.0.59/
启动./usr/local/tomcat/bin/startup.sh
停止./usr/local/tomcat/bin/shutdown.sh
2-5分别测试http://localhost:8080 显示内容为1 http://localhost:8180 显示内容为2
3.安装好apache2.2.34
3-1 安装gcc
3-2 apr
3-3 安装apr-util
3-4 安装pcre
3-4 编译./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/bin/pcre-config --enable-so --enable-proxy --enable-proxy_http=shared --enable-module=so --enable-mods-shared=all --enable-proxy-ajp=shared --enable-proxy-balancer --disable-deflate
make clean 全新安装不用这样操作。
make
make install
3-5下载mod_jk.so注意版本一定要正确,否则提示 cannot load /usr/local/apache/modules/mod_jk.so ELF错误。正确版本:mod_jk-1.2.31-httpd-2.2.x.so
3-6将下载的mod_jk-1.2.31-httpd-2.2.x.so 重命名为 mod_jk.so 并放到apache的modules目录下,权限给777
3-7修改httpd.conf 在文件最后添加如下
include conf/mod_jk.conf
3-8在apache的conf目录下新建mod_jk.conf
内容如下:
#Load Module
LoadModule jk_module modules/mod_jk.so
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
#指定哪些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /* controller
3-9 在apache的conf目录下新建workers.properties 其内容如下
[[email protected] conf]# more workers.properties
worker.list=controller,tomcat1,tomcat2
##########tomcat1######
worker.tomcat1.port=8009
worker.tomcat1.host=127.0.0.1
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
##########tomcat2######
worker.tomcat2.port=8109
worker.tomcat2.host=127.0.0.1
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#######################
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
3-10 ./usr/local/apache/bin/apachectl -t 检查语法
3-11. http://localhost 如果显示It works 说明apache安装正常。
3-12. 修改httpd.conf中的默认首页文件。
<IfModule dir_module>
DirectoryIndex apache.html
</IfModule>
3-13. ./usr/local/apache/bin/apachectl -k start 启动apache
3-14. http://localhost 多刷新几次,内容是1 和2交替出现。