自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Tomcat完美實(shí)現(xiàn)在線商城應(yīng)用部署

開發(fā) 前端
Tomcat是一個(gè)小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。

Tomcat是一個(gè)小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對于一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對HTML 頁面的訪問請求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。

Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。

環(huán)境介紹:

系統(tǒng)版本: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

在線商城系統(tǒng):shopxx-3.0Beta(可下載)

拓?fù)湔故荆?/strong>

102330695.jpg

安裝配置過程:

1、配置IP地址

  1. ############前端服務(wù)器[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、安裝配置后端服務(wù)器

  1. ###########TomcatA服務(wù)器:############## 
  2.     ##########安裝JDK:############## 
  3. [root@node1~]# rpm -ivh jdk-7u9-linux-x64.rpm 
  4. [root@node1~]# vim /etc/profile.d/java.sh   #編輯執(zhí)行腳本 
  5.  export JAVA_HOME=/usr/java/latest 
  6.  export PATH=$JAVA_HOME/bin:$PATH 
  7. [root@node1~]# . /etc/profile.d/java.sh     #讀取執(zhí)行腳本 
  8. [root@node1~]# java -version                #查看安裝信息 
  9. javaversion "1.7.0_09"   #版本信息 
  10. Java(TM)SE Runtime Environment (build 1.7.0_09-b05)    #運(yùn)行時(shí)環(huán)境的版本 
  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     #定義啟動環(huán)境變量 
  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默認(rèn)監(jiān)聽在8080端口上,啟動監(jiān)聽端口為8005,8009#### 
  59. ##########Tomcat B服務(wù)器上同樣安裝,這里就不再重復(fù)演示了######## 
  60. ##########更改監(jiān)聽端口############ 
  61. [root@node1conf]# vim /usr/local/tomcat/conf/server.xml 
  62.     <Connector port="80"protocol="HTTP/1.1"            #70行 
  63.               connectionTimeout="20000" 
  64.                redirectPort="8443"/> 
  65. ##########重新啟動服務(wù)############ 
  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、配置前端服務(wù)器實(shí)現(xiàn)負(fù)載均衡

  1. ##########安裝Apache################### 
  2. [root@node~]# yum -y install httpd 
  3. [root@node~]# service httpd start 
  4. ##########配置基于mod_proxy代理,負(fù)載均衡######## 
  5. [root@node~]# cd /etc/httpd/conf.d/ 
  6. [root@nodeconf.d]# vim mod_proxy_tomcat.conf 
  7. ProxyViaOn 
  8. ProxyRequestsOff      #關(guān)閉正向代理 
  9. ProxyPreserveHostOff 
  10. <Proxybalancer://hotcluster>     #定義代理的后端服務(wù)器 
  11. BalancerMember  http://192.168.18.39:80 loadfactor=1       #指定后端服務(wù)器地址及端口 
  12. BalancerMember  http://192.168.18.36:80 loadfactor=1 
  13. ProxySet  lbmethod=byrequests 
  14. </Proxy> 
  15. <Location/zhao> 
  16.   SetHandler balancer-manager 
  17.   Proxypass ! 
  18.   Order Deny,Allow 
  19.   Allow from all 
  20. </Location> 
  21. ProxyPass/ balancer://hotcluster/ 
  22. #stickysession=JSESSIONID|jsessionidnofailover=On 
  23. ProxyPassReverse/ balancer://hotcluster/ 
  24. <Proxy*> 
  25.   Order Allow,Deny 
  26.   Allow From all 
  27. </Proxy> 
  28. <Location  / > 
  29.   Order Allow,Deny 
  30.   Allow From all 
  31. </Location> 
  32. ############測試語法的正確性############## 
  33. [root@nodeconf.d]# service httpd configtest 
  34. ###########重啟服務(wù)####################### 
  35. [root@nodeconf.d]# service httpd restart 

110556573.png

4、查看鏈接狀況開啟tomcat管理功能:

  1. ##注意:由于兩臺后端服務(wù)器可能都會用到,所以兩邊都要創(chuàng)建用戶并且保持一致## 
  2. #########更改用戶管理配置文件###### 
  3. [root@node1conf]# vim /usr/local/tomcat/conf/tomcat-users.xml 
  4. ##內(nèi)容:## 
  5.   <rolerolenamerolerolename="manager-gui"/> 
  6.   <role rolename="admin-gui"/> 
  7.   <user username="tomcat"password="tomcat" roles="manager-gui,admin-gui"/> 
  8. #########復(fù)制到Tomcat B########### 
  9. [root@node1conf]# scp tomcat-users.xml 192.168.18.2:/usr/local/tomcat/conf/ 
  10. ##########重新啟動服務(wù)############ 
  11. [root@node1conf]# catalina.sh stop 
  12. [root@node1conf]# catalina.sh start 
  13. [root@node2local]# catalina.sh stop 
  14. [root@node2local]# catalina.sh start 

104648699.png

 

104652696.png

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. ###內(nèi)容### 
  6. <%@ page language="java" %> 
  7. <html> 
  8.   <head><title>TomcatA</title></head> 
  9.   <body> 
  10.     <h1><font color="red">TomcatA </font></h1> 
  11.     <table align="centre" border="1"> 
  12.       <tr> 
  13.         <td>Session ID</td> 
  14.     <% session.setAttribute("abc","abc"); %> 
  15.         <td><%= session.getId() %></td> 
  16.       </tr> 
  17.       <tr> 
  18.         <td>Created on</td> 
  19.         <td><%= session.getCreationTime() %></td> 
  20.      </tr> 
  21.     </table> 
  22.   </body> 
  23. </html> 
  24. [root@node1 tomcat]# catalina.sh stop 
  25. [root@node1 tomcat]# catalina.sh start 
  26.           ############ Tomcat B ########### 
  27. [root@node2 tomcat]#  mkdir webapps/testapp/WEB-INF/{lib,classes} -pv 
  28. [root@node2 tomcat]# vim webapps/testapp/index.jsp 
  29. ###內(nèi)容### 
  30. <%@ page language="java" %> 
  31. <html> 
  32.   <head><title>TomcatB</title></head> 
  33.   <body> 
  34.     <h1><font color="blue">TomcatB </font></h1> 
  35.     <table align="centre" border="1"> 
  36.       <tr> 
  37.         <td>Session ID</td> 
  38.     <% session.setAttribute("abc","abc"); %> 
  39.         <td><%= session.getId() %></td> 
  40.       </tr> 
  41.       <tr> 
  42.         <td>Created on</td> 
  43.         <td><%= session.getCreationTime() %></td> 
  44.      </tr> 
  45.     </table> 
  46.   </body> 
  47. </html> 
  48. [root@node2 webapps]# catalina.sh stop 
  49. [root@node2 webapps]# catalina.sh start 

#p#

113123116.png

113127167.png

6、基于內(nèi)存復(fù)制實(shí)現(xiàn)session共享集群:

  1. ############# Tomcat A ############ 
  2. [root@node1 ~]# cd /usr/local/tomcat/conf/ 
  3. [root@node1 conf]# nano server.xml      #由于以下內(nèi)容有縮進(jìn)格式建議使用此編輯器 
  4. ##添加在/host和/engine之間:## 
  5.         <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" 
  6.                  channelSendOptions="8"> 
  7.           <Manager className="org.apache.catalina.ha.session.DeltaManager" 
  8.                    expireSessionsOnShutdown="false" 
  9.                    notifyListenersOnReplication="true"/> 
  10.           <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 
  11.             <Membership className="org.apache.catalina.tribes.membership.McastService" 
  12.                         address="228.0.0.4" 
  13.                         port="45564" 
  14.                         frequency="500" 
  15.                         dropTime="3000"/> 
  16.             <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" 
  17.                       address="192.168.18.1"            #自己的地址 
  18.                       port="4000" 
  19.                       autoBind="100" 
  20.                       selectorTimeout="5000" 
  21.                       maxThreads="6"/> 
  22.             <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 
  23.               <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> 
  24.             </Sender> 
  25.             <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 
  26.             <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> 
  27.           </Channel> 
  28.           <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" 
  29.                  filter=""/> 
  30.           <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> 
  31.           <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" 
  32.                     tempDir="/tmp/war-temp/" 
  33.                     deployDir="/tmp/war-deploy/" 
  34.                     watchDir="/tmp/war-listen/" 
  35.                     watchEnabled="false"/> 
  36.           <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> 
  37.           <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> 
  38.         </Cluster> 
  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.   <distributable />             #表示這個(gè)應(yīng)用程序的會話將實(shí)現(xiàn)分布式 
  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 

131028107.png

 

131031245.png

總結(jié):我們發(fā)現(xiàn)無論如何刷新,session id的信息都不會再改變。至此我們完成了使用mod_proxy實(shí)現(xiàn)負(fù)載均衡和利用tomcat集群實(shí)現(xiàn)session共享。下面我們來部署商店的應(yīng)用。

7、在線商店的應(yīng)用實(shí)現(xiàn)

  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. <distributable />   #添加此字段 
  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. <distributable />   #添加此字段 

133024137.png

133029634.png

#p#

注:安裝環(huán)境不符合基本環(huán)境需要增加內(nèi)存:方法如下

  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虛擬機(jī)的內(nèi)存需要在啟動腳本里修改; -Xmx:定義java虛擬機(jī)使用最大內(nèi)存。其中M:指的是MB,不指定則為KB 
  6. ######### Tomcat B 服務(wù)器也需要更改####### 
  7. #########重新啟動服務(wù)##################### 

135730692.png

更改完之后下一步:無法進(jìn)入到安裝頁面會重新回到進(jìn)入頁面;

原因:因?yàn)榘惭b時(shí)后端可能會出現(xiàn)負(fù)載均衡轉(zhuǎn)移所以導(dǎo)致無法進(jìn)入安裝頁面,只能使用本地安裝

  1. ######切換至前端服務(wù)器######### 
  2. [root@node ~]# yum -y install firefox 
  3. [root@node ~]# firefox & 

安裝商城應(yīng)用

141420688.png

141428813.png

安裝mysql服務(wù)器,并授權(quán)一個(gè)用戶用于登錄安裝服務(wù)

  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; 

142853947.png

142859560.png

142904705.png

點(diǎn)擊完成安裝,重啟web服務(wù)刪除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安裝文件復(fù)制到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 

145306335.png

下面就可以可以在商城系統(tǒng)注冊一個(gè)帳號,并登錄到系統(tǒng),購買一些衣服等,查看購物車中是否保存已加入到購物車中的衣服等等。

150413871.png

至此,tomcat基于session共享集群實(shí)現(xiàn)在線商城應(yīng)用部署就完美實(shí)現(xiàn)了,注意此商城不可做商業(yè)用途。

責(zé)任編輯:陳四芳 來源: blog.51cto.com
相關(guān)推薦

2015-03-26 13:19:05

紅帽OpenShiftPaaS

2014-05-08 09:14:21

2016-01-27 16:08:09

2009-08-17 17:16:19

C#實(shí)現(xiàn)在線升級

2024-04-25 11:45:09

在線地圖SOTA

2009-07-01 14:36:34

呼叫中心智能網(wǎng)絡(luò)

2014-07-31 15:42:51

2009-10-12 11:11:17

RHEL 5 Xen

2009-02-23 20:21:40

系統(tǒng)分析師論文寫作XML

2023-12-10 21:03:01

TomcatMavenJava

2010-06-04 13:18:22

2012-10-08 11:18:05

JavaMVC項(xiàng)目

2011-10-12 10:31:12

Android移動應(yīng)用臺式電腦

2024-12-05 10:26:33

Tomcat線程熱部署

2020-03-06 12:20:52

SpringGitHub項(xiàng)目

2014-03-19 11:28:23

VDIBYODWindows應(yīng)用

2019-05-17 10:10:30

優(yōu)衣庫黑客數(shù)據(jù)泄漏

2019-02-14 14:33:22

Spring BootTomcat開發(fā)

2019-06-12 18:30:17

LinuxLutris開源游戲平臺

2010-06-30 21:09:16

中國電信路由系統(tǒng)Juniper Net
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號