设为首页 收藏本站
查看: 1409|回复: 0

[经验分享] 整合apache+tomcat+keepalived实现高可用tomcat集群

[复制链接]

尚未签到

发表于 2015-8-2 14:11:26 | 显示全部楼层 |阅读模式
  Apache是一个强大的Web服务器在处理静态页面、处理大量网络客户请求、支持服务的种类以及可配置方面都有优势,高速并且强壮。但是没有JSP/Servlet的解析能力。整合Apache和Tomcat可以看作是用Tomcat做Apache的jsp/servlet解析插件,将两者优势结合起来。不过Tomcat作为一个Web服务器,本身具备了基本的Web服务功能,在SUN的力推下,将来或许越来越强壮到不需要借助Apache优势的地步。
  Tomcat是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
  Apache与tomcat的异同:
  apache支持静态页,tomcat支持动态的,比如servlet等。
  一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。
  apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。
  apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。
  Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等)。
  Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器;
  Apache与tomcat整合的好处
  如果客户端请求的是静态页面,则只需要Apache服务器响应请求。
  如果客户端请求动态页面,则是Tomcat服务器响应请求。
  因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。
  
  一.环境与功能说明
   DSC0000.png
  前端:apache配置负载均衡、反向代理(mod_jk模块)
  后端:tomcat服务器
  前端高可用:通过keepalived实现
  
  系统版本:CentOS 6.4_x86_64(最小化)
  apache版本:httpd-2.4.9
  arp版本:apr-1.4.6
  apr-util版本:apr-util-1.4.1
  tomcat版本:apache-tomcat-7.0.53
  Jdk版本:jdk-7u40-linux-x64
  tomcat-commectors版本:tomcat-connectors-1.2.40
  keepalived版本:keepalived-1.2.7-3.el6.x86_64(使用yum安装)
  
  二.安装与配置apache服务器(172.16.10.72、172.16.10.75执行同样的安装与配置,这里只演示一次)
  1.安装编译工具和依赖包



yum groupinstall "Development Tools" "Development Libraries" –y
  2.下载软件包



yum -y install wget
wget http://mirror.esocc.com/apache//httpd/httpd-2.4.9.tar.gz
wget http://mirrors.axint.net/apache//apr/apr-1.4.6.tar.gz
wget http://mirrors.axint.net/apache//apr/apr-util-1.4.1.tar.gz
  3.安装apache
  3.1.安装apr和apr-tuil
  httpd-2.4.9需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。以下是采用前者进行安装:



# tar xf apr-1.4.6.tar.gz
# tar xf apr-util-1.4.1.tar.gz
# cd apr-1.4.6
# ./configure --prefix=/usr/local/apr
# make
# make install
# cd ..
# cd apr-util-1.4.1
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make
# make install
# cd ..
  3.2.安装http-2.4.9



# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all
# make && make install
  4.配置SysV服务脚本/etc/init.d/httpd



# cp build/rpm/httpd.init /etc/init.d/httpd
#修改如下内容:
# vi /etc/init.d/httpd
httpd=${HTTPD-/usr/local/apache/bin/httpd}
pidfile=${PIDFILE-/usr/local/apache/logs/${prog}.pid}
lockfile=${LOCKFILE-/var/lock/subsys/${prog}}
RETVAL=0
# check for 1.3 configuration
check13 () {
CONFFILE=/etc/httpd24/httpd.conf
#修改环境变量并把Httpd加入到系统服务
    # echo "PATH=/usr/local/apache/bin:$PATH" >> /etc/profile.d/http.sh
  # . /etc/profile.d/http.sh
  # ln -s /usr/local/apache/include/ /usr/include/httpd
  # chkconfig --add httpd
   5.安装tomcat-connectors



# wget http://apache.fayea.com/apache-mirror/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.40-src.tar.gz
# tar xf tomcat-connectors-1.2.40-src.tar.gz
# cd tomcat-connectors-1.2.40-src/native/
# ./configure --with-apxs=/usr/local/apache/bin/apxs
# make
# make install
  安装完成后会生成如下文件



# ls /usr/local/apache/modules/|grep 'mod_jk'
mod_jk.so

  启动httpd服务



# service httpd start
  执行./configure --with-apxs=/usr/local/apache/bin/apxs时可能会遇到以下报错:
  need to check for Perl first, apxs depends on it...
checking for perl... /usr/bin/perl
could not find /usr/local/apache/bin/apxs
configure: error: You must specify a valid --with-apxs path
  解法办法:
  vi /usr/local/apache/bin/apxs
把第一行改成:#!/usr/bin/perl -w
  另外检查系统中是否已经安装过perl,如果没有安装,用yum安装即可。
  三.安装与配置tomcat服务器(172.16.10.61、172.16.10.62执行同样的安装,这里只演示一次)
  1.安装JDK
  下载地址:http://download.oracle.com/



# rpm -ivh jdk-7u40-linux-x64.rpm
# vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
# . /etc/profile.d/java.sh
# java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
  2.安装Tomcat
  下载地址:http://apache.fayea.com/apache-mirror/tomcat/tomcat-7/v7.0.53/bin/apache-tomcat-7.0.53.tar.gz



# tar xf apache-tomcat-7.0.53.tar.gz -C /usr/local/
# cd /usr/local/
# ln -s apache-tomcat-7.0.53 tomcat
# vim /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
# . /etc/profile.d/tomcat.sh
# /usr/local/tomcat/bin/catalina.sh version
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.53
Server built:   Mar 25 2014 06:20:16
Server number:  7.0.53.0
OS Name:        Linux
OS Version:     2.6.32-279.el6.x86_64
Architecture:   amd64
JVM Version:    1.7.0_40-b43
JVM Vendor:     Oracle Corporation
  3.启动Tomcat服务并访问测试,默认访问端口为8080:



# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
# ss -antpl | grep 8080
0      100                           :::8080                         :::*      users:(("java",1299,42))
   DSC0001.png
  4.开启Tomcat管理及状态页面



# vim /usr/local/tomcat/conf/tomcat-users.xml(在标签上一行添加如下两行)

#后台管理页面登录名及密码均为tomcat
# /usr/local/tomcat/bin/catalina.sh stop
# /usr/local/tomcat/bin/catalina.sh start
  5.访问Tomcat后台管理
   DSC0002.png
   DSC0003.png
  四.配置Apache使用mod_jk模块实现代理及负载均衡
  1.编辑Apache主配置文件,实现代理功能(172.16.10.72)



echo "Include /etc/httpd24/extra/mod_jk.conf" >> /etc/httpd24/httpd.conf  #将此指令添加到文件末尾即可
  2.创建mod_jk.conf及workers.properties文件



# cat >>/etc/httpd24/extra/mod_jk.conf /etc/httpd24/extra/workers.properties /etc/httpd24/extra/mod_jk.conf /etc/httpd/extra/workers.properties

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-93380-1-1.html 上篇帖子: apache实现多个端口 下篇帖子: apache高性能配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表