本文所实现的目的是实现动静分离的负载均衡
安装前的准备
CentOS 7 最小化安装
yum 安装 gcc gcc-c++ perl
apache-tomcat-9.0.0.M4.tar.gz //tomcat二进制压缩包(不是源码包)
apr-1.5.2.tar.gz //apr源码包
apr-util-1.5.4.tar.gz //apr-util源码包
httpd-2.4.20.tar.gz //Apache源码包
pcre-8.38.tar.gz //pcre源码包
jdk-8u91-linux-x64.gz //JDK
tomcat-connectors-1.2.41-src.tar.gz //apache-tomcat连接器源码包
一、安装Apache的依赖包apr
1.解压缩apr源码包
# tar -zxvf apr-1.5.2.tar.gz
2.把解压得到的包移动到/usr/local/ 中,并进入其中
# mv apr-1.5.2 /usr/local/
# cd /usr/local/apr-1.5.2
3.执行安装过程
# ./configure
# make && make install
4.安装完成,清理残余
# cd /usr/local
# rm -rf /usr/local/apr-1.5.2/
二、安装Apache的依赖包apr-util
1.解压缩apr-util源码包
# tar -zxvf apr-util-1.5.4.tar.gz
2.把解压得到的包移动到/usr/local/ 中,并进入其中
# mv apr-util-1.5.4 /usr/local/
# cd /usr/local/apr-util.1.5.4
3.执行安装过程
# ./configure –with-apr=/usr/local/apr
# make && make install
4.安装完成,清理残余
# cd /usr/local
# rm -rf /usr/local/apr-util-1.5.4/
三、安装PCRE
1.解压缩PCRE源码包
# tar -zxvf pcre-8.38.tar.gz
2.把解压得到的包移动到/usr/local/ 中,并进入其中
# mv pcre-8.38 /usr/local/
# cd /usr/local/pcre-8.38
3.执行安装过程
# ./configure
# make && make install
4.安装完成
# cd /usr/local
# rm -rf /usr/local/pcre-8.38/
四、安装Apache
1 解压缩Apache,通读httpd目录里的INSTALL文件
# tar -zxvf httpd-2.4.20.tar.gz
2.把解压得到的包移动到/usr/local/ 中,并进入其中
# mv httpd-2.4.20 /usr/local
# cd httpd-2.4.20
3.执行安装过程
# ./configure
# make && make install
4.安装完成会在/usr/local/ 生成一个apache2的目录,清理残余文件
# cd /usr/local/
# rm -rf httpd-2.4.20
5.启动Apache看看是否成功安装
# /usr/local/apache2/bin/apachectl start
执行会报错,在/usr/local/apache2/conf/httpd.conf 的最后加上
ServerName 192.168.77.132
则重新启动Apache,就不会报错了(ps:192.168.77.132 为我的计算机在局域网内的IP)
因为我们是最小化安装,所以没有图形界面,就要在局域网内的别的计算机测试一下,是否成功。
6.开放防火墙的80端口(Apache默认端口为80),并让防火墙重新载入
# firewall-cmd --permanent --zone=public--add-port=80/tcp
# firewall-cmd –reload
7.在局域网内其他电脑浏览器地址栏输入http://192.168.77.132:80/,看到 it works欢迎页表示成功(192.168.77.132是我的centos的IP)
五、安装Java的JDK
1.解压缩JDK的压缩包
#tar -zxvf jdk-8u91-linux-x64.gz
2,将解压缩得到的目录,放到/usr/local/目录下,并重命名为java
#mv jdk1.8.0_91 /usr/local/java
3.设置环境变量
# vi /etc/profile
在文件最后加入以下内容(顺便连Tomcat的环境变量也设置了吧):
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
exportCLASSPATH=.:$JAVA_HOME/lib/*.*:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=.:$CATALINA_HOME/lib/*.*
export PATH=/usr/local/tomcat/bin/:$PATH
六、安装tomcat
1.解压缩tomcat的二进制压缩包,并移动到/usr/local/目录下
# tar -zxvf apache-tomcat-9.0.0.M4.tar.gz
# mv apache-tomcat-9.0.0.M4 /usr/local
2.安装完成,给tomcat的目录改个名字
# mv /usr/local/apache-tomcat-9.0.0.M4/usr/local/tomcat
3.测试是否能正常运行,开启防火墙的8080端口
# firewall-cmd --permanent --zone=public--add-port=8080/tcp
# firewall-cmd --reload
7.在局域网内其他电脑浏览器地址栏输入http://192.168.77.132:8080/,看到tomcat欢迎页表示成功(192.168.77.132是我的centos的IP)
七、安装tomcat-connectors-1.2.41-src.tar.gz ,生成mod_jk.so ,来连接Apache与Tomcat
1.解压缩tomcat-connectors-1.2.41-src.tar.gz,并把生成的目录移动到 /usr/local/ 下
# tar -zxvf tomcat-connectors-1.2.41-src.tar.gz
# mv tomcat-connectors-1.2.41-src /usr/local/tomcat-connectors-1.2.41-src
2.进入/usr/local/tomcat-connectors-1.2.41-src/native,执行命令
# ./configure--with-apxs=/usr/local/apache2/bin/apxs
# make
3.make成功会在/usr/local/tomcat-connectors-1.2.41-src/native/apache-2.0/目录中生成一个 mod_jk.so 的可执行二进制文件,这就是我们需要的连接器。
4.上一步生成的mod_jk.so文件复制到/usr/local/apache2/modules/目录下
八、连接
1.在/usr/local/apache2/conf 目录建立两个新文件 mod_jk.conf 和 workers.properties
mod_jk.conf的内容是jk的配置文件,包括装载模块和日志信息以及指定解析的工作器和目录。workers.properties是Tomcat wokers的配置文件。
2.编辑 /usr/local/apache2/conf/httpd.conf文件,在文件最后一行加入以下内容
#把jk_mod.conf文件装载进来
Include conf/mod_jk.conf
3.在 mod_jk.conf 里加入以下内容
#加载jk模块,名字要对应
LoadModule jk_module modules/mod_jk.so
#加载刚才新建的workers.properties文件
JkWorkersFile conf/workers.properties
#Jk日志文件
JkLogFile logs/mod_jk.log
#Jk日志的级别,参数有[debug/error/info]
JkShmFile logs/mod_jk.shm
JkLogLevel info
#Jk日志的数据格式
JkLogStampFormat "[%a %b %d %H:%M:%S%Y] "
#Jk的一些配置选项 indicateto send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat-ForwardDirectories
#Jk请求日志的格式
JkRequestLogFormat "%w %V %T"
#JSP do Servlet文件交由Tomcat处理
JkMount /servlet/* ajp13
JkMount /*.jsp ajp13
JkMount /*.do ajp13
#JkMount 表示使用Tomcat来解析, JkUnMount则相反
#jsp和servlet程序交由tomcat处理就可以了,静态文件图片等仍然由Apache处理
JkAutoAlias /usr/local/apache2/htdocs*
#该文件夹下所有的静态文件自动交由Apache处理
4.编辑workers.properties文件,添加以下内容
workers.tomcat_home=/usr/local/tomcat/
workers.java_home=/usr/Java/jdk/
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
5.为Tomcat重建工作目录
# mv /usr/local/tomcat/webapps /usr/local/tomcat/webapps.bak
# ln -s /usr/local/apache2/htdocs/usr/local/tomcat/webapps
九、重启Apache和Tomcat,测试是否成功
1.在apache的工作目录下编写一个小jsp网页
# mkdir /usr/local/apache2/htdocs/webs
# vi /usr/local/apache2/htdocs/webs/showtime.jsp
在其中加入以下内容:
<%@page language="java"import="java.util.*"%>
Now,the time&date is :<%out.println(new Date());%>
保存退出
2.在局域网内的其他电脑的浏览器地址框内输入
http://192.168.77.132/webs/showtime.jsp
网页上显示当前时间
说明成功!!!
参考:http://blog.csdn.net/v1v1wang/article/details/6128565
http://www.linuxidc.com/Linux/2012-11/74474.htm
http://dragon123.blog.51cto.com/9152073/1559169