溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時間:2021-11-17 15:12:40 來源:億速云 閱讀:121 作者:柒染 欄目:web開發(fā)

Tomcat怎樣完美實現(xiàn)在線商城應(yīng)用部署,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

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

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

環(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(可下載)

拓撲展示:

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

安裝配置過程:

1、配置IP地址

############前端服務(wù)器[root@node ~]#:############# ifconfig eth0 172.16.18.6 ifconfig eth2 192.168.18.254/24 ############Tomcat A[root@node1~]#:############### ifconfig eth0 192.168.18.1/24 route add default gw 192.168.18.254 ############Tomcat B[root@node2~]#:################ ifconfig eth0 192.168.18.2/24 route add default gw 192.168.18.254

2、安裝配置后端服務(wù)器

###########TomcatA服務(wù)器:##############     ##########安裝JDK:############## [root@node1~]# rpm -ivh jdk-7u9-linux-x64.rpm [root@node1~]# vim /etc/profile.d/java.sh   #編輯執(zhí)行腳本  export JAVA_HOME=/usr/java/latest  export PATH=$JAVA_HOME/bin:$PATH [root@node1~]# . /etc/profile.d/java.sh     #讀取執(zhí)行腳本 [root@node1~]# java -version                #查看安裝信息 javaversion "1.7.0_09"   #版本信息 Java(TM)SE Runtime Environment (build 1.7.0_09-b05)    #運行時環(huán)境的版本 JavaHotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)      #########安裝Tomcat############# [root@node1~]# tar xf apache-tomcat-7.0.42.tar.gz -C /usr/local/ [root@node1~]# cd /usr/local/ [root@node1local]# ln -sv apache-tomcat-7.0.42/ tomcat [root@node1tomcat]# vim /etc/profile.d/tomcat.sh     #定義啟動環(huán)境變量 exportCATALINA_HOME=/usr/local/tomcat exportPATH=$CATALINA_HOME/bin:$PATH [root@node1tomcat]# . /etc/profile.d/tomcat.sh       #讀取腳本 [root@node1~]# catalina.sh version   #查看安裝信息 UsingCATALINA_BASE:   /usr/local/tomcat UsingCATALINA_HOME:   /usr/local/tomcat UsingCATALINA_TMPDIR: /usr/local/tomcat/temp UsingJRE_HOME:        /usr/java/latest UsingCLASSPATH:      /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Serverversion: Apache Tomcat/7.0.42 Serverbuilt:   Jul 2 2013 08:57:41 Servernumber:  7.0.42.0 OSName:        Linux OSVersion:     2.6.32-358.el6.x86_64 Architecture:   amd64 JVMVersion:    1.7.0_09-b05 JVMVendor:     Oracle Corporation #############啟動################## [root@node1~]# catalina.sh start ############查看啟動端口########### [root@node1~]# ss -tanl State      Recv-Q Send-Q                     Local Address:Port                       Peer Address:Port LISTEN     0     128                                  :::111                                 :::* LISTEN     0     128                                   *:111                                  *:* LISTEN     0     100                                   :::8080                                 :::* LISTEN     0     128                                  :::49906                               :::* LISTEN     0     128                                   *:56818                                *:* LISTEN     0     128                                  :::22                                  :::* LISTEN     0     128                                   *:22                                   *:* LISTEN     0     128                           127.0.0.1:631                                   *:* LISTEN     0     128                                 ::1:631                                 :::* LISTEN     0     100                                  ::1:25                                   :::* LISTEN     0     100                           127.0.0.1:25                                    *:* LISTEN     0     128                           127.0.0.1:6010                                 *:* LISTEN     0     128                                 ::1:6010                                :::* LISTEN     0     128                           127.0.0.1:6011                                  *:* LISTEN     0     128                                  ::1:6011                                 :::* LISTEN     0     128                           127.0.0.1:6012                                  *:* LISTEN     0     128                                 ::1:6012                                :::* LISTEN     0     1                      ::ffff:127.0.0.1:8005                                 :::* LISTEN     0     100                                  :::8009                                :::* ###解析:tomcat默認監(jiān)聽在8080端口上,啟動監(jiān)聽端口為8005,8009#### ##########Tomcat B服務(wù)器上同樣安裝,這里就不再重復(fù)演示了######## ##########更改監(jiān)聽端口############ [root@node1conf]# vim /usr/local/tomcat/conf/server.xml     <Connector port="80"protocol="HTTP/1.1"            #70行               connectionTimeout="20000"                redirectPort="8443"/> ##########重新啟動服務(wù)############ [root@node1conf]# catalina.sh stop [root@node1conf]# catalina.sh start [root@node1conf]# scp server.xml 192.168.18.2:/usr/local/tomcat/conf/ [root@node2local]# catalina.sh stop [root@node2local]# catalina.sh start

3、配置前端服務(wù)器實現(xiàn)負載均衡

##########安裝Apache################### [root@node~]# yum -y install httpd [root@node~]# service httpd start ##########配置基于mod_proxy代理,負載均衡######## [root@node~]# cd /etc/httpd/conf.d/ [root@nodeconf.d]# vim mod_proxy_tomcat.conf ProxyViaOn ProxyRequestsOff      #關(guān)閉正向代理 ProxyPreserveHostOff <Proxybalancer://hotcluster>     #定義代理的后端服務(wù)器 BalancerMember  http://192.168.18.39:80 loadfactor=1       #指定后端服務(wù)器地址及端口 BalancerMember  http://192.168.18.36:80 loadfactor=1 ProxySet  lbmethod=byrequests </Proxy> <Location/zhao>   SetHandler balancer-manager   Proxypass !   Order Deny,Allow   Allow from all </Location> ProxyPass/ balancer://hotcluster/ #stickysession=JSESSIONID|jsessionidnofailover=On ProxyPassReverse/ balancer://hotcluster/ <Proxy*>   Order Allow,Deny   Allow From all </Proxy> <Location  / >   Order Allow,Deny   Allow From all </Location> ############測試語法的正確性############## [root@nodeconf.d]# service httpd configtest ###########重啟服務(wù)####################### [root@nodeconf.d]# service httpd restart

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

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

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

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

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

5、簡單部署主頁查看session值:

##########部署虛擬目錄和部署主頁#############         #########  Tomcat A  ########### [root@node1 tomcat]#  mkdir webapps/testapp/WEB-INF/{lib,classes} -pv [root@node1 tomcat]# vim webapps/testapp/index.jsp ###內(nèi)容### <%@ page language="java" %> <html>   <head><title>TomcatA</title></head>   <body>     <h2><font color="red">TomcatA </font></h2>     <table align="centre" border="1">       <tr>         <td>Session ID</td>     <% session.setAttribute("abc","abc"); %>         <td><%= session.getId() %></td>       </tr>       <tr>         <td>Created on</td>         <td><%= session.getCreationTime() %></td>      </tr>     </table>   </body> </html> [root@node1 tomcat]# catalina.sh stop [root@node1 tomcat]# catalina.sh start           ############ Tomcat B ########### [root@node2 tomcat]#  mkdir webapps/testapp/WEB-INF/{lib,classes} -pv [root@node2 tomcat]# vim webapps/testapp/index.jsp ###內(nèi)容### <%@ page language="java" %> <html>   <head><title>TomcatB</title></head>   <body>     <h2><font color="blue">TomcatB </font></h2>     <table align="centre" border="1">       <tr>         <td>Session ID</td>     <% session.setAttribute("abc","abc"); %>         <td><%= session.getId() %></td>       </tr>       <tr>         <td>Created on</td>         <td><%= session.getCreationTime() %></td>      </tr>     </table>   </body> </html> [root@node2 webapps]# catalina.sh stop [root@node2 webapps]# catalina.sh start

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

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

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

############# Tomcat A ############ [root@node1 ~]# cd /usr/local/tomcat/conf/ [root@node1 conf]# nano server.xml      #由于以下內(nèi)容有縮進格式建議使用此編輯器 ##添加在/host和/engine之間:##         <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"                  channelSendOptions="8">           <Manager className="org.apache.catalina.ha.session.DeltaManager"                    expireSessionsOnShutdown="false"                    notifyListenersOnReplication="true"/>           <Channel className="org.apache.catalina.tribes.group.GroupChannel">             <Membership className="org.apache.catalina.tribes.membership.McastService"                         address="228.0.0.4"                         port="45564"                         frequency="500"                         dropTime="3000"/>             <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"                       address="192.168.18.1"            #自己的地址                       port="4000"                       autoBind="100"                       selectorTimeout="5000"                       maxThreads="6"/>             <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">               <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>             </Sender>             <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>             <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch25Interceptor"/>           </Channel>           <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"                  filter=""/>           <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>           <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"                     tempDir="/tmp/war-temp/"                     deployDir="/tmp/war-deploy/"                     watchDir="/tmp/war-listen/"                     watchEnabled="false"/>           <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>           <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>         </Cluster> #停止tomcat## [root@node1 ~]# catalina.sh stop [root@node1 conf]# cp web.xml ../webapps/testapp/WEB-INF/ [root@node1 conf]# vim ../webapps/testapp/WEB-INF/web.xml 添加如下字段:   <distributable />             #表示這個應(yīng)用程序的會話將實現(xiàn)分布式 [root@node1 conf]# scp ../webapps/testapp/WEB-INF/web.xml 192.168.18.2:/usr/local/tomcat/webapps/testapp/WEB-INF/ [root@node1 conf]# scp server.xml 192.168.18.2:/usr/local/tomcat/conf/ [root@node1 conf]# catalina.sh start ############ Tomcat B ########### [root@node1 ~]# catalina.sh stop [root@node1 conf]# catalina.sh start

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

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

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

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

############ Tomcat A ############ [root@node1 ~]# unzip shopxx-a5-Beta.zip [root@node1 ~]# mv shopxx-v3.0-Beta/* /usr/local/tomcat/webapps/shopxx [root@node2 tomcat]# vim webapps/shopxx/WEB-INF/web.xml <distributable />   #添加此字段 ############ Tomcat B ############ [root@node2 ~]# unzip shopxx-a5-Beta.zip [root@node2 ~]# mv shopxx-v3.0-Beta/* /usr/local/tomcat/webapps/shopxx [root@node2 tomcat]# vim webapps/shopxx/WEB-INF/web.xml <distributable />   #添加此字段

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

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

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

######## Tomcat A ######################## [root@node1 ~]# cd /usr/local/tomcat/bin/ [root@node1 bin]# vim catalina.sh JAVA_OPTS="$JAVA_OPTS -Xmx256M"     //237行 注釋:修改java虛擬機的內(nèi)存需要在啟動腳本里修改; -Xmx:定義java虛擬機使用最大內(nèi)存。其中M:指的是MB,不指定則為KB ######### Tomcat B 服務(wù)器也需要更改####### #########重新啟動服務(wù)#####################

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

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

原因:因為安裝時后端可能會出現(xiàn)負載均衡轉(zhuǎn)移所以導(dǎo)致無法進入安裝頁面,只能使用本地安裝

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

安裝商城應(yīng)用

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

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

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

############ Tomcat A ############ [root@node1 shopxx]# yum -y install mysql-server [root@node1 shopxx]# service mysqld start [root@node1 shopxx]# mysql mysql> grant all on *.* to 'shopuser'@'192.168.%.%' identified by 'shoppass'; mysql> flush privileges; ############ Tomcat B ############ [root@node2 shopxx]# yum -y install mysql-server [root@node2 shopxx]# service mysqld start [root@node2 shopxx]# mysql mysql> grant all on *.* to 'shopuser'@'192.168.%.%' identified by 'shoppass'; mysql> flush privileges;

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

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

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

點擊完成安裝,重啟web服務(wù)刪除install目錄

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

將Tomcat A 上shopxx安裝文件復(fù)制到Tomcat B上

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

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

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

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

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

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI