基于Apache和tomcat实现负载均衡
1、基于Apache和tomcat实现负载均衡
准备三个虚拟机一个安装Apache两个安装Tomcat
关闭防火墙
systemctl stop firewalld
Iptabled -F
Setenforce 0
安装Apache
一.通过 https://apr.apache.org/ 下载 APR 和 APR-util
通过 http://httpd.apache.org/download.cgi 下载 httpd
通过 https://ftp.pcre.org/pub/pcre/ 下载 pcre
二、配置安装环境
yum -y install gcc gcc-c++ make expat-devel
三、解压与编译安装
mkdir /data
(1)编译安装 APR
tar xf apr-1.7.0.tar.gz -C /data
cd /data
mv apr-1.7.0/ apr
cd apr/
./configure --prefix=/data/apr && make && make install
(2)编译安装 APR-util
tar xf apr-util-1.6.1.tar.gz -C /data
cd /data
mv apr-util-1.6.1/ apr-util
cd apr-util/
./configure --prefix=/data/apr-util --with-apr=/data/apr && make && make install
(3)编译安装 pcre
tar xf pcre-8.43.tar.gz -C /data
cd /data
mv pcre-8.43/ pcre
cd pcre/
./configure --prefix=/data/pcre && make && make install
(4)编译安装 httpd
tar xf httpd-2.4.41.tar.gz -C /data
cd /data
mv httpd-2.4.41/ apache
cd apache/
./configure --prefix=/data/apache --with-apr=/data/apr --with-apr-util=/data/apr-util && make && make install
四、启动与关闭
/data/apache/bin/apachectl start //启动
/data/apache/bin/apachectl stop //关闭
开放80端口
firewall-cmd --permanent --and-port=80/tcp
firewall-cmd -reload
配置开机自启
(1)将 apachectl 命令拷贝到 /etc/init.d 目录下,改名为httpd
cp /data/apache/bin/apachectl /etc/init.d/httpd
(2)编辑 /etc/init.d/httpd 文件,在第一行 #!/bin/bash 的后面添加如下两行
chkconfig: 2345 70 40
说明:2345 表示脚本运行的级别,即在2、3、4、5这4种模式下都可以运行,70 表示脚本启动的顺序号,40 表示系统关闭时,脚本的停止顺序号
description:apache
(3)将 Apache 服务加入到系统服务
chkconfig --add httpd
chkconfig --list httpd
(4)通过使用 systemctl 命令控制 Apache 的启动和停止
启动 Apache 服务
systemctl start httpd.service
查看 Apache 服务运行状态
systemctl status httpd.service
关闭 Apache 服务
systemctl stop httpd.service
五、安装中遇到的问题以及解决办法
错误:configure:error:no acceptable C compiler found in $PATH
解决:需要安装 gcc
错误:rm:cannot remove ‘libtoolT’:No such file or directory
解决:编辑 /data/apr/configure , 找到 $RM '$cfgfile' 进行注释
错误:configure:error:APR not found. Please read the documentation.
解决:需要安装 APR 和 APR-util
错误:xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录
解决:需要安装 expat-devel 包
错误:configure:error:pcre-config for libpcre not found. PCRE is required and availab le from
解决:需要安装 pcre
错误:如果报多个 .so:undefined reference to 'XXX'
解决:有可能是下载的 APR-util 包 有问题。换一个下载就好了。
安装完apache后直接安装httpd服务
yum -y install httpd
源码安装Tomcat
(1)查看是否安装jdk
(2)卸载jdk的方式
方法一:which java
rm -rf /usr/bin/java
方法二:rpm -qa | grep -i openjdk
rpm -e java-1.7.0-openjdk
rpm -e java-1.7.0-openjdk-headless
rpm -e java-1.7.0-openjdk --nodeps
rpm -e java-1.7.0-openjdk-headless
rpm -qa | grep -i openjdk
(3)jdk安装
软件包jdk-8u191-linux-x64.tar.gz
解压当前目录下
用mv 移动到/usr/local/取名
定义环境变量 vim /etc/profile
设置java 根目录
在PATH 环境变量中添加Java 根目录的bin 子目录
用 source执行生效
安装tomcat
apache-tomcat-8.5.40.tar.gz
解压软件包当地
用ls 查看
解压后生成文件夹apache-tomcat-8.5.40
将文件夹移动到/usr/local/下,并改名为tomcat8
启动tomcat
查看8080端口
用谷歌查看本地的ip 地址:8080
安装完apache以及tomcat后
修改/etc/httpd/conf/httpd.conf
把下面的内容写到最后文件的最后,打开文件的80端口
#添加以下内容
<Proxy balancer://tomcat/>
# 定义集群成员,有多少个Tomcat,就加多少行,注意IP、端口
BalancerMember ajp://192.168.200.11:8009/ loadfactor=1 #权重为1
BalancerMember ajp://192.168.200.12:8009/ loadfactor=1
proxyset lbmethod=byrequests #均衡分配
</Proxy>
proxyrequests off #取消正向代理
ProxyPass / balancer://tomcat/ # 定义一个代理服务 语法:ProxyPass 路径 协议://名称/
proxypassreverse / balancer://tomcats/
# 不要代理/server-status路径,注意最后的感叹号
# /server-status路径是Apache里面用来统计、跟踪它本身的运行情况的
ProxyPass /server-status !
# 不要代理集群管理器的路径
ProxyPass /balancer-manager !
通过浏览器访问自己主机的ip