Tomcat完美实现在线商城应用部署

Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的选择。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

创新互联公司专注于孙吴网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供孙吴营销型网站建设,孙吴网站制作、孙吴网页设计、孙吴网站官网定制、微信小程序开发服务,打造孙吴网络公司原创品牌,更为您提供孙吴网站排名全网营销落地服务。

Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

环境介绍:

系统版本:CentOS 6.4_x86_64

mysql版本: mysql-server.x86_64 0:5.1.66-2.el6_3

Apache版本:httpd-2.2.15-26.el6

Tomcat版本:apache-tomcat-7.0.42

JDK版本: jdk-7u40-linux-x64

在线商城系统:shopxx-3.0Beta(可下载)

拓扑展示:

安装配置过程:

1、配置IP地址

 
 
 
 
  1. ############前端服务器[root@node ~]#:#############
  2. ifconfig eth0 172.16.18.6
  3. ifconfig eth1 192.168.18.254/24
  4. ############Tomcat A[root@node1~]#:###############
  5. ifconfig eth0 192.168.18.1/24
  6. route add default gw 192.168.18.254
  7. ############Tomcat B[root@node2~]#:################
  8. ifconfig eth0 192.168.18.2/24
  9. route add default gw 192.168.18.254

2、安装配置后端服务器

 
 
 
 
  1. ###########TomcatA服务器:##############
  2.     ##########安装JDK:##############
  3. [root@node1~]# rpm -ivh jdk-7u9-linux-x64.rpm
  4. [root@node1~]# vim /etc/profile.d/java.sh   #编辑执行脚本
  5.  export JAVA_HOME=/usr/java/latest
  6.  export PATH=$JAVA_HOME/bin:$PATH
  7. [root@node1~]# . /etc/profile.d/java.sh     #读取执行脚本
  8. [root@node1~]# java -version                #查看安装信息
  9. javaversion "1.7.0_09"   #版本信息
  10. Java(TM)SE Runtime Environment (build 1.7.0_09-b05)    #运行时环境的版本
  11. JavaHotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
  12.      #########安装Tomcat#############
  13. [root@node1~]# tar xf apache-tomcat-7.0.42.tar.gz -C /usr/local/
  14. [root@node1~]# cd /usr/local/
  15. [root@node1local]# ln -sv apache-tomcat-7.0.42/ tomcat
  16. [root@node1tomcat]# vim /etc/profile.d/tomcat.sh     #定义启动环境变量
  17. exportCATALINA_HOME=/usr/local/tomcat
  18. exportPATH=$CATALINA_HOME/bin:$PATH
  19. [root@node1tomcat]# . /etc/profile.d/tomcat.sh       #读取脚本
  20. [root@node1~]# catalina.sh version   #查看安装信息
  21. UsingCATALINA_BASE:   /usr/local/tomcat
  22. UsingCATALINA_HOME:   /usr/local/tomcat
  23. UsingCATALINA_TMPDIR: /usr/local/tomcat/temp
  24. UsingJRE_HOME:        /usr/java/latest
  25. UsingCLASSPATH:      /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
  26. Serverversion: Apache Tomcat/7.0.42
  27. Serverbuilt:   Jul 2 2013 08:57:41
  28. Servernumber:  7.0.42.0
  29. OSName:        Linux
  30. OSVersion:     2.6.32-358.el6.x86_64
  31. Architecture:   amd64
  32. JVMVersion:    1.7.0_09-b05
  33. JVMVendor:     Oracle Corporation
  34. #############启动##################
  35. [root@node1~]# catalina.sh start
  36. ############查看启动端口###########
  37. [root@node1~]# ss -tanl
  38. State      Recv-Q Send-Q                     Local Address:Port                       Peer Address:Port
  39. LISTEN     0     128                                  :::111                                 :::*
  40. LISTEN     0     128                                   *:111                                  *:*
  41. LISTEN     0     100                                   :::8080                                 :::*
  42. LISTEN     0     128                                  :::49906                               :::*
  43. LISTEN     0     128                                   *:56818                                *:*
  44. LISTEN     0     128                                  :::22                                  :::*
  45. LISTEN     0     128                                   *:22                                   *:*
  46. LISTEN     0     128                           127.0.0.1:631                                   *:*
  47. LISTEN     0     128                                 ::1:631                                 :::*
  48. LISTEN     0     100                                  ::1:25                                   :::*
  49. LISTEN     0     100                           127.0.0.1:25                                    *:*
  50. LISTEN     0     128                           127.0.0.1:6010                                 *:*
  51. LISTEN     0     128                                 ::1:6010                                :::*
  52. LISTEN     0     128                           127.0.0.1:6011                                  *:*
  53. LISTEN     0     128                                  ::1:6011                                 :::*
  54. LISTEN     0     128                           127.0.0.1:6012                                  *:*
  55. LISTEN     0     128                                 ::1:6012                                :::*
  56. LISTEN     0     1                      ::ffff:127.0.0.1:8005                                 :::*
  57. LISTEN     0     100                                  :::8009                                :::*
  58. ###解析:tomcat默认监听在8080端口上,启动监听端口为8005,8009####
  59. ##########Tomcat B服务器上同样安装,这里就不再重复演示了########
  60. ##########更改监听端口############
  61. [root@node1conf]# vim /usr/local/tomcat/conf/server.xml
  62.     
  63.               connectionTimeout="20000"
  64.                redirectPort="8443"/>
  65. ##########重新启动服务############
  66. [root@node1conf]# catalina.sh stop
  67. [root@node1conf]# catalina.sh start
  68. [root@node1conf]# scp server.xml 192.168.18.2:/usr/local/tomcat/conf/
  69. [root@node2local]# catalina.sh stop
  70. [root@node2local]# catalina.sh start

#p#

3、配置前端服务器实现负载均衡

 
 
 
 
  1. ##########安装Apache###################
  2. [root@node~]# yum -y install httpd
  3. [root@node~]# service httpd start
  4. ##########配置基于mod_proxy代理,负载均衡########
  5. [root@node~]# cd /etc/httpd/conf.d/
  6. [root@nodeconf.d]# vim mod_proxy_tomcat.conf
  7. ProxyViaOn
  8. ProxyRequestsOff      #关闭正向代理
  9. ProxyPreserveHostOff
  10.      #定义代理的后端服务器
  11. BalancerMember  http://192.168.18.39:80 loadfactor=1       #指定后端服务器地址及端口
  12. BalancerMember  http://192.168.18.36:80 loadfactor=1
  13. ProxySet  lbmethod=byrequests
  14.   SetHandler balancer-manager
  15.   Proxypass !
  16.   Order Deny,Allow
  17.   Allow from all
  18. ProxyPass/ balancer://hotcluster/
  19. #stickysession=JSESSIONID|jsessionidnofailover=On
  20. ProxyPassReverse/ balancer://hotcluster/
  21.   Order Allow,Deny
  22.   Allow From all
  23.   Order Allow,Deny
  24.   Allow From all
  25. ############测试语法的正确性##############
  26. [root@nodeconf.d]# service httpd configtest
  27. ###########重启服务#######################
  28. [root@nodeconf.d]# service httpd restart

4、查看链接状况开启tomcat管理功能:

 
 
 
 
  1. ##注意:由于两台后端服务器可能都会用到,所以两边都要创建用户并且保持一致##
  2. #########更改用户管理配置文件######
  3. [root@node1conf]# vim /usr/local/tomcat/conf/tomcat-users.xml
  4. ##内容:##
  5.   
  6.   
  7.   
  8. #########复制到Tomcat B###########
  9. [root@node1conf]# scp tomcat-users.xml 192.168.18.2:/usr/local/tomcat/conf/
  10. ##########重新启动服务############
  11. [root@node1conf]# catalina.sh stop
  12. [root@node1conf]# catalina.sh start
  13. [root@node2local]# catalina.sh stop
  14. [root@node2local]# catalina.sh start

5、简单部署主页查看session值:

 
 
 
 
  1. ##########部署虚拟目录和部署主页#############
  2.         #########  Tomcat A  ###########
  3. [root@node1 tomcat]#  mkdir webapps/testapp/WEB-INF/{lib,classes} -pv
  4. [root@node1 tomcat]# vim webapps/testapp/index.jsp
  5. ###内容###
  6. <%@ page language="java" %>
  7.   TomcatA
  8.   
  9.     

    TomcatA 

  10.     
  11.       
  12.         Session ID
  13.     <% session.setAttribute("abc","abc"); %>
  14.         <%= session.getId() %>
  15.       
  16.       
  17.         Created on
  18.         <%= session.getCreationTime() %>
  19.      
  20.     
  21.   
  22. [root@node1 tomcat]# catalina.sh stop
  23. [root@node1 tomcat]# catalina.sh start
  24.           ############ Tomcat B ###########
  25. [root@node2 tomcat]#  mkdir webapps/testapp/WEB-INF/{lib,classes} -pv
  26. [root@node2 tomcat]# vim webapps/testapp/index.jsp
  27. ###内容###
  28. <%@ page language="java" %>
  29.   TomcatB
  30.   
  31.     

    TomcatB 

  32.     
  33.       
  34.         Session ID
  35.     <% session.setAttribute("abc","abc"); %>
  36.         <%= session.getId() %>
  37.       
  38.       
  39.         Created on
  40.         <%= session.getCreationTime() %>
  41.      
  42.     
  43.   
  44. [root@node2 webapps]# catalina.sh stop
  45. [root@node2 webapps]# catalina.sh start

#p#

6、基于内存复制实现session共享集群:

 
 
 
 
  1. ############# Tomcat A ############
  2. [root@node1 ~]# cd /usr/local/tomcat/conf/
  3. [root@node1 conf]# nano server.xml      #由于以下内容有缩进格式建议使用此编辑器
  4. ##添加在/host和/engine之间:##
  5.         
  6.                  channelSendOptions="8">
  7.           
  8.                    expireSessionsOnShutdown="false"
  9.                    notifyListenersOnReplication="true"/>
  10.           
  11.             
  12.                         address="228.0.0.4"
  13.                         port="45564"
  14.                         frequency="500"
  15.                         dropTime="3000"/>
  16.             
  17.                       address="192.168.18.1"            #自己的地址
  18.                       port="4000"
  19.                       autoBind="100"
  20.                       selectorTimeout="5000"
  21.                       maxThreads="6"/>
  22.             
  23.               
  24.             
  25.             
  26.             
  27.           
  28.           
  29.                  filter=""/>
  30.           
  31.           
  32.                     tempDir="/tmp/war-temp/"
  33.                     deployDir="/tmp/war-deploy/"
  34.                     watchDir="/tmp/war-listen/"
  35.                     watchEnabled="false"/>
  36.           
  37.           
  38.         
  39. #停止tomcat##
  40. [root@node1 ~]# catalina.sh stop
  41. [root@node1 conf]# cp web.xml ../webapps/testapp/WEB-INF/
  42. [root@node1 conf]# vim ../webapps/testapp/WEB-INF/web.xml
  43. 添加如下字段:
  44.                #表示这个应用程序的会话将实现分布式
  45. [root@node1 conf]# scp ../webapps/testapp/WEB-INF/web.xml 192.168.18.2:/usr/local/tomcat/webapps/testapp/WEB-INF/
  46. [root@node1 conf]# scp server.xml 192.168.18.2:/usr/local/tomcat/conf/
  47. [root@node1 conf]# catalina.sh start
  48. ############ Tomcat B ###########
  49. [root@node1 ~]# catalina.sh stop
  50. [root@node1 conf]# catalina.sh start

总结:我们发现无论如何刷新,session id的信息都不会再改变。至此我们完成了使用mod_proxy实现负载均衡和利用tomcat集群实现session共享。下面我们来部署商店的应用。

7、在线商店的应用实现

 
 
 
 
  1. ############ Tomcat A ############
  2. [root@node1 ~]# unzip shopxx-a5-Beta.zip
  3. [root@node1 ~]# mv shopxx-v3.0-Beta/* /usr/local/tomcat/webapps/shopxx
  4. [root@node2 tomcat]# vim webapps/shopxx/WEB-INF/web.xml
  5.    #添加此字段
  6. ############ Tomcat B ############
  7. [root@node2 ~]# unzip shopxx-a5-Beta.zip
  8. [root@node2 ~]# mv shopxx-v3.0-Beta/* /usr/local/tomcat/webapps/shopxx
  9. [root@node2 tomcat]# vim webapps/shopxx/WEB-INF/web.xml
  10.    #添加此字段

#p#

注:安装环境不符合基本环境需要增加内存:方法如下

 
 
 
 
  1. ######## Tomcat A ########################
  2. [root@node1 ~]# cd /usr/local/tomcat/bin/
  3. [root@node1 bin]# vim catalina.sh
  4. JAVA_OPTS="$JAVA_OPTS -Xmx256M"     //237行
  5. 注释:修改java虚拟机的内存需要在启动脚本里修改; -Xmx:定义java虚拟机使用最大内存。其中M:指的是MB,不指定则为KB
  6. ######### Tomcat B 服务器也需要更改#######
  7. #########重新启动服务#####################

更改完之后下一步:无法进入到安装页面会重新回到进入页面;

原因:因为安装时后端可能会出现负载均衡转移所以导致无法进入安装页面,只能使用本地安装

 
 
 
 
  1. ######切换至前端服务器#########
  2. [root@node ~]# yum -y install firefox
  3. [root@node ~]# firefox &

安装商城应用

安装mysql服务器,并授权一个用户用于登录安装服务

 
 
 
 
  1. ############ Tomcat A ############
  2. [root@node1 shopxx]# yum -y install mysql-server
  3. [root@node1 shopxx]# service mysqld start
  4. [root@node1 shopxx]# mysql
  5. mysql> grant all on *.* to 'shopuser'@'192.168.%.%' identified by 'shoppass';
  6. mysql> flush privileges;
  7. ############ Tomcat B ############
  8. [root@node2 shopxx]# yum -y install mysql-server
  9. [root@node2 shopxx]# service mysqld start
  10. [root@node2 shopxx]# mysql
  11. mysql> grant all on *.* to 'shopuser'@'192.168.%.%' identified by 'shoppass';
  12. mysql> flush privileges;

点击完成安装,重启web服务删除install目录

 
 
 
 
  1. [root@node1 shopxx]# mv install install.bak
  2. [root@node1 shopxx]# catalina.sh stop
  3. [root@node1 shopxx]# catalina.sh start

将Tomcat A 上shopxx安装文件复制到Tomcat B上

 
 
 
 
  1. [root@node1 webapps]# scp -rp shopxx/* 192.168.18.2:/usr/local/tomcat/webapps/shopxx/
  2. [root@node2 shopxx]# catalina.sh stop
  3. [root@node2 shopxx]# catalina.sh start

下面就可以可以在商城系统注册一个帐号,并登录到系统,购买一些衣服等,查看购物车中是否保存已加入到购物车中的衣服等等。

至此,tomcat基于session共享集群实现在线商城应用部署就完美实现了,注意此商城不可做商业用途。

本文名称:Tomcat完美实现在线商城应用部署
转载源于:http://www.shufengxianlan.com/qtweb/news4/534204.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联