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

[经验分享] Linux(Ubuntu)下apache tomcat mod_jk实现负载均衡全过程

[复制链接]

尚未签到

发表于 2015-8-2 13:11:30 | 显示全部楼层 |阅读模式
   辛苦码字,转载请注明出处!
  一、系统简介
  Ubuntu 10.04.4 LTS  64位操作系统
  Linux  2.6.32-41-generic  x86_64 GNU/Linux  (其他Linux版本的安装方法大致相同)
  1个apache  2个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 -zxvf  apr-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、欢迎大家加入本站运维交流群:群②: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-93339-1-1.html 上篇帖子: JBOSS java.lang.NoClassDefFoundError: org/apache/commons/digester/RuleSet 下篇帖子: Apache log4cxx用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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