tomcat热部署、系统部署演示

tomcat热部署

热部署方法一:
我们要登录tomcat管理页面,但需要进行一些配置,那么怎么配置呢?tomcat首页可以给我们一些提示,我们点击tomcat首页的"Manager App"。
在这里插入图片描述
这时会弹出一个对话框,让我们输入用户名和密码,我们当然这时不知道,于是我们点击"取消"。

点击"取消"后,页面的错误信息给了我们一些提示,告诉我们应该怎么做才能访问tomcat后台管理页面。它提到了,我们可以配置 conf/tomcat-users.xml这个文件。用户需要有manager-gui的权限来使用图形界面进行管理,或者采用manager-script命令行方式进行管理,如下图所示。

在这里插入图片描述
下面我们编辑/usr/local/apache-tomcat-7.0.47/ conf/tomcat-users.xml文件,在上面添加三行配置,如下图所示。
在这里插入图片描述


由于每个工程都对应一个tomcat,所以tomcat的名字最好有意义,既然我们要启动taotao-manager工程,那么我们的tomcat的名字便叫taotao-manager。如下图所示。修改名字所用的命令是:mv apache-tomcat-7.0.47 taotao-manager
在这里插入图片描述
保存后,我们重启tomcat,就是先关闭tomcat,然后再打开tomcat,如下所示。

[root@taotao-tomcat1 taotao-manager]# bin/shutdown.sh
Using CATALINA_BASE: /usr/local/taotao-manager
Using CATALINA_HOME: /usr/local/taotao-manager
Using CATALINA_TMPDIR: /usr/local/taotao-manager/temp
Using JRE_HOME: /usr/local/jdk1.8.0_112
Using CLASSPATH: /usr/local/taotao-manager/bin/bootstrap.jar:/usr/local/taotao-manager/bin/tomcat-juli.jar

[root@taotao-tomcat1 taotao-manager]# bin/startup.sh
Using CATALINA_BASE: /usr/local/taotao-manager
Using CATALINA_HOME: /usr/local/taotao-manager
Using CATALINA_TMPDIR: /usr/local/taotao-manager/temp
Using JRE_HOME: /usr/local/jdk1.8.0_112
Using CLASSPATH: /usr/local/taotao-manager/bin/bootstrap.jar:/usr/local/taotao-manager/bin/tomcat-juli.jar

[root@taotao-tomcat1 taotao-manager]# tailf logs/catalina.out
六月 26, 2017 4:34:04 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler [“ajp-bio-8009”]
六月 26, 2017 4:34:04 上午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1172 ms
六月 26, 2017 4:34:04 上午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
六月 26, 2017 4:34:04 上午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.47
六月 26, 2017 4:34:04 上午 org.apache.catalina.startup.HostConfig deployWAR
信息: Deploying web application archive /usr/local/taotao-manager/webapps/ROOT.war
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/taotao-manager/webapps/ROOT/WEB-INF/lib/activemq-all-5.11.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/taotao-manager/webapps/ROOT/WEB-INF/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
六月 26, 2017 4:34:14 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /usr/local/taotao-manager/webapps/manager
六月 26, 2017 4:34:15 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /usr/local/taotao-manager/webapps/host-manager
六月 26, 2017 4:34:15 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /usr/local/taotao-manager/webapps/examples
六月 26, 2017 4:34:15 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /usr/local/taotao-manager/webapps/docs
六月 26, 2017 4:34:15 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler [“http-bio-8080”]
六月 26, 2017 4:34:15 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler [“ajp-bio-8009”]
六月 26, 2017 4:34:15 上午 org.apache.catalina.startup.Catalina start
信息: Server startup in 11689 ms

重启之后,我们再刷新下刚才不允许访问的http://192.168.156.43:8080/manager/html这个地址,会让我们输入用户名和密码,我们在conf/tomcat-users.xml文件当中配置的用户名和密码都是"tomcat",因此我们在弹出的对话框中输入用户名和密码,然后点击"登录"按钮。如下图所示。

点击上图的登录按钮后,我们可以看到如下图所示界面。这便是我们的管理后台,我们可以手工部署,就是先把工程打成war包然后用下图的"选择文件"选择打成的war包,然后点击"Deploy"进行部署。它会把war包自动上传到服务器,自动解压并自动启动。
在这里插入图片描述
下面我们便来把后台这个taotao-manager聚合工程打包成war工程,方法是在taotao-manager工程上右键,在右键菜单中点击"Export"。
在这里插入图片描述
在弹出的对话框中展开Web目录,在该目录下有一个WAR file,我们点击它,然后点击"Next"
在这里插入图片描述
在下图中,会让我们选择一个Web project,由于taotao-manager是个聚合工程,既然要打war包,就要选择这个聚合工程下的war工程,聚合工程下的war工程是taotao-manager-service工程,我们给war包选择一个生成的目录,然后点击"Finish"。
在这里插入图片描述
下面我们便把刚才打成的war包上传到服务端,方法是点击管理后台的"选择文件"按钮,选择我们刚才生成的war包,会在"选择文件"后面显示要上传的war包,然后我们点击"Deploy"按钮。
在这里插入图片描述
导入完后,Message一行的信息如果是"OK"表名上传成功。
在这里插入图片描述
我们再到服务器上的tomcat的webapps目录下,可以看到taotao-manager-service.war已被解压了。
[root@taotao-tomcat1 taotao-manager]# ls
bin conf lib LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt temp webapps work
[root@taotao-tomcat1 taotao-manager]# cd webapps/
[root@taotao-tomcat1 webapps]# ls
docs examples host-manager manager ROOT taotao-manager-service taotao-manager-service.war
[root@taotao-tomcat1 webapps]#

上面这种方式太麻烦,看不到启动工程的信息,我们不用这种方法。

热部署方法二:maven的tomcat插件
我们来部署taotao-manager工程,为了避免方法一给方法二造成影响,我们把方法一启动的tomcat关闭。接下来,我们到pom.xml文件进行修改,如下图所示,原来的里面有两行内容,第一行是 / ,这行内容现在依然有用,它的意思是把工程放到webapps/ROOT目录下面。放到ROOT目录下的好处是会少一级目录,如果把path配置改为 /taotao-manager 的话,代表在webapps目录下会生成一个taotao-manager.war,并且它会自动解压。如果要访问这个工程下的页面的话,就要在路径下多加一级目录,就是"/taotao-manager"。http://192.168.156.43:8080/manager/text这句配置的意思是指定tomcat后台管理页面地址(就是我们方法一中的后台管理页面地址),如果是tomcat7的话是现在这个样子,如果是tomcat6的话,就把manager后面的text这级目录去掉,变成http://192.168.156.43:8080/manager。我们在方法一中指定了访问tomcat后台管理页面的用户名和密码,我们这里也需要用。
在这里插入图片描述



org.apache.tomcat.maven
tomcat7-maven-plugin

/
8080
http://192.168.156.43:8080/manager/text
tomcat
tomcat



除了修改pom.xml文件,我们还需要修改数据库配置文件,因为原来我们写的连接数据库的地址是localhost,现在我们既然要部署到服务器了,就不能再用localhost了,而要写成真实的IP地址,如下图所示。
在这里插入图片描述
既然指定了要连接的数据库是192.168.156.41服务器上的mysql,而且还指定了要连的库是taotao,因此我们需要在192.168.156.41这台服务的mysql中新建一个数据库taotao,并且将taotao.sql文件导入到taotao数据库中,如下图所示。
在这里插入图片描述

下面我们便来部署taotao-manager工程,该工程是个聚合工程,会把所有子工程都打包到一块。我们在taotao-manager工程上右键----->Run As----->Maven build…
在这里插入图片描述
在弹出的对话框中,Goals一栏输入:clean tomcat7:redeploy -DskipTests,其中"-DskipTests"的意思是跳过检查(也可以不写"-DskipTests",不过要勾选下方的"Skip Tests"复选框),然后点击"Run"。
在这里插入图片描述
运行成功后,如下图所示。
在这里插入图片描述
那么,我们怎么知道成功了没有呢?我们可以去dubbo-admin管理页面查看。最好要将dubbo监控中心与zookeeper放到一台服务器上。安装好dubbo-admin后我们访问dubbo管理页面,如下图所示。为了查看我们刚才发布的服务是否已经成功,我们点击那个倒三角,在下拉菜单中点击"服务"。

部署的时候,大家一定要注意开发时的jdk版本以及服务器的jdk版本,两者一定要一致,否则会出现一些你想都想不到的问题!
在这里插入图片描述
但是有个小问题,那就是当我们重启taotao-manager服务之后,dubbo那端认为原来的taotao-manager还没有关闭,继续占用着端口,为了解决这个问题,我们需要将服务器上的该工程的tomcat关掉再重启即可。

系统部署演示

首先说下淘淘商城在真实环境中要部署的话需要多少台服务器
服务所需的服务器数量至少是24台,如下所示。
需要24台服务器。 24
Mysql 2
Solr 7
Redis 6
图片服务器 2
Nginx 2
注册中心 3
Activemq 2
工程共12个,如下所示,本着高可用的原则,每个工程至少有两台服务器。12个工程至少需要24台服务器。
Taotao-manager
Taotao-manager-web
Taotao-portal-web
Taotao-content
Taotao-search
Taotao-search-web
Taotao-item-web
Taotao-sso
Taotao-sso-web
Taotao-cart-web
Taotao-order
Taotao-order-web
这样,总共需要的服务器总数至少是48台。但我们都知道,一般的小公司是绝不可能弄这么多服务器的,太昂贵了

比较可行的是采用伪分布式,如下图所示,搭建服务原来需要24台服务器,现在只需要7台即可。
在这里插入图片描述搭建工程规划使用5台服务器便可,如下图所示。
在这里插入图片描述
这样规划的话,我们只需要7+5=12台服务器即可。当然了,12台服务器在一般的公司来说,也是达不到的,那么我们便可以进一步压缩,把更多的服务合并到一台服务器上,把更多的工程合并到一台服务器上。

首先我们来部署下taotao-manager工程,根据规划,taotao-manager工程应该部署到IP为192.168.156.43这台服务器上,要部署该工程,大家可以参考上篇博客http://blog.csdn.net/u012453843/article/details/73656590的方法二。上篇博客部署taotao-manager刚好就是部署在了192.168.156.43这台服务器上,我们不用改动。部署成功后,我们可以在dubbo的管理页面看到如下图所示的注册信息。
在这里插入图片描述
下面我们来部署第二个服务,就是taotao-content服务,根据规划,这个服务也将被部署到192.168.156.43这台服务器上。首先我们在192.168.156.43这台服务器上新解压一个tomcat到/usr/local目录如下所示。

[root@taotao-tomcat1 software]# ll
总用量 336900
-rw-r–r--. 1 root root 8234674 3月 15 01:03 apache-tomcat-7.0.47.tar.gz
-rw-r–r--. 1 root root 153530841 5月 21 2016 jdk-7u80-linux-x64.gz
-rw-r–r--. 1 root root 183212596 4月 2 10:51 jdk-8u112-linux-x64.gz
[root@taotao-tomcat1 software]# tar -zxvf apache-tomcat-7.0.47.tar.gz -C /usr/local/

我们到/usr/local目录下,将刚解压好的apache-tomcat-7.0.47更名为taotao-content,如下图所示。
在这里插入图片描述
在同一台服务器上,tomcat端口号不能一样,根据规划,taotao-content工程的访问端口号是8081,因此我们需要修改下taotao-content这个tomcat的端口号。修改的文件是taotao-content/conf/server.xml。需要修改的端口号有三个,下图是第一个要修改的端口号。
在这里插入图片描述
接着修改第二个和第三个端口,如下图所示。
在这里插入图片描述
这样端口便修改完了,保存退出。下面我们来配置tomcat使其具有热部署功能,修改的文件是与上面server.xml同目录下的tomcat-users.xml,如下图所示。
在这里插入图片描述

添加的配置如下:



这样tomcat配置我们便修改完了,下面我们启动taotao-content这个tomcat。启动后,我们访问192.168.156.43:8081,如下图所示。可以正常访问tomcat首页。

在这里插入图片描述
们再尝试访问tomcat后台管理页面,访问的地址是http://192.168.156.43:8081/manager/html,会让我们输入用户名和密码,由于我们配置热部署的时候,指定了用户名和密码都是"tomcat",因此这里我们都输入"tomcat",如下图所示,然后点击"登录"。
在这里插入图片描述

点击上图的"登录"按钮后,我们可以看到如下图所示界面。说明热部署配置没问题。
在这里插入图片描述

服务端弄好了,现在我们来开始部署taotao-content工程,我们需要先修改下taotao-content聚合工程的pom.xml文件,如下图所示,添加了三行配置,与部署taotao-manager工程不同的是,里面的tomcat热部署地址的端口号有所变化,现在是8081。大家可能会有疑问,配置上面的那个8083有什么用?会不会对部署产生坏的影响。这个其实不用担心,这个port对热部署来说,没有用,这里之所以没有把它删掉是因为我们在Windows系统下开发的时候给这个工程规划的端口是8083,如果需要在Windows系统下启动该工程的话,这个port就是有用的,因此这个8083配置我们不必理会,搁那儿就行。
在这里插入图片描述

改了taotao-content的pom.xml文件后,我们还需要修改下这个工程的taotao-content-service模块的数据库的配置文件,如下图所示,将原来的localhost修改为mysql所在的服务器的IP地址。
在这里插入图片描述

修改完了,下面我们便部署taotao-content工程,在taotao-content工程上右键------->Run As------->Maven build…,如下图所示。
在这里插入图片描述

在弹出的对话框中Goals一栏输入"clean tomcat7:redeploy -DskipTests",其中redeploy代表重新部署,-DskipTests表示跳过测试,然后点击"Run"。
在这里插入图片描述

部署完后,我们到dubbo管理页面,发现多了两个服务,分别是com.taotao.content.service.ContentCategoryService和com.taotao.content.service.ContentService。说明我们的taotao-content工程也部署成功。

在这里插入图片描述

下面根据规划,我们来部署taotao-search工程,这个过程与部署taotao-content几乎是一样的,不一样的无非是修改下tomcat的那三个端口,taotao-manager和taotao-content工程已经占用了8005、8080、8009和8006、8081、8010这两组端口,我们需要给taotao-search工程定义新的端口,就定义为8007、8082、8011这三个。taotao-search工程的pom.xml文件与taotao-content工程添加的三行配置的区别也就是端口号不同而已,这里是8082,如下图所示。
在这里插入图片描述

配置如下:
http://192.168.156.43:8082/manager/text
tomcat
tomcat

然后修改taotao-search-service这个模块的数据库配置文件,还是将localhost修改为mysql所在的服务器的IP地址192.168.156.41。

下面便和taotao-content工程一样,使用maven tomcat进行热部署在taotao-search工程上右键------->Run As------->Maven build------->在弹出的对话框中的Goals一栏输入"clean tomcat7:redeploy -DskipTests"------->点击Run。之后我们便可以在dubbo管理页面看到search工程注册的服务了,如下图所示。
在这里插入图片描述

上面在192.168.156.43这台服务器上部署了三个服务,由于工程太多,我无法一一在博客书写,只写三个服务和三个后台工程,其它的大家比葫芦画瓢就行了。三个服务写完了,现在我跳过192.168.156.44服务器规划的两个服务,直接到192.168.156.45这台服务器规划的taotao-manager-web、taotao-portal-web、taotao-search-web这三个后台工程。

首先要确保新的服务器192.168.156.45上安装的jdk是否与Eclipse开发时所用的jdk版本一致,我Eclipse开发时用的jdk1.8,因此服务器上的jdk版本也要是1.8才行。

下面我们便来部署第一个后台工程taotao-manager-web,按照老规矩,先在192.168.156.45这台新的服务器上解压一份tomcat,放到/usr/local目录下,并改名为taotao-manager-web,改名的好处是为了好区分,如下图所示。
在这里插入图片描述

taotao-manager-web这个工程是192.168.156.45这台服务器上的第一个工程,它的tomcat端口号我们便不用改了,我们直接修改conf目录下的tomcat-users.xml,从而让该tomcat具有热部署功能,如下图所示,这三行配置与我们前面所有工程热部署配置都一样。
在这里插入图片描述

配置内容如下:


下面我们便可以启动taotao-manager-web工程了,启动后,我们访问192.168.156.45:8080,如下图所示,可以访问到tomcat首页。
在这里插入图片描述
再尝试访问tomcat后台管理页面192.168.156.45:8080/manager/html,会让我们输入用户名和密码,我们输入热部署配置的用户名和密码,都是"tomcat",就可以看到如下图所示界面,说明热部署配置没错。
在这里插入图片描述

下面我们便来使用maven tomcat插件热部署taotao-manager-web工程,我们只需修改pom.xml文件,注意这时的IP地址是192.168.156.45,如下图所示。
在这里插入图片描述
配置内容如下:
http://192.168.156.45:8080/manager/text
tomcat
tomcat
别的地方不需要修改,我们在taotao-manager-web工程上右键------>Run As------->Maven build…如下图所示。
在这里插入图片描述
在弹出的对话框中的Goals一栏输入"clean tomcat7:redeploy",勾选下面的"Skip Tests"复选框,然后点击"Run"。如下图所示。
在这里插入图片描述
运行成功后,我们到dubbo管理页面查看消费者信息页面,如下图所示。可以看到有五条消费信息,而消费者都是taotao-manager-web工程。
在这里插入图片描述
上图是什么意思呢?我们看下taotao-manager-web工程的springmvc.xml配置文件就明白了,如下图所示,可以看到该工程引用了5个dubbo服务,所以才会有上图的5条消费信息。这边引入几个服务,上图便会有几条消费信息。
在这里插入图片描述

我们再访问192.168.156.45:8080地址,如下图所示,可以看到现在显示的是淘淘商城后台管理页面,而且点击"查询商品"可以查看到商品信息,这说明该工程部署没问题。

在这里插入图片描述

下面我们来部署taotao-portal-web工程,首先还是解压一份纯净的tomcat到/usr/local目录下,然后将解压后的目录改名为taotao-portal-web,如下图所示。
在这里插入图片描述

由于192.168.156.45这台服务器上已经部署了一个客户端,已经占用了8080等端口,因此这个taotao-port-web工程的tomcat三个端口需要修改,如下图所示,三个端口分别修改为8006、8081、8010。
在这里插入图片描述

下面修改tomcat的tomcat-users.xml文件,使其具有热部署功能。如下图所示。
在这里插入图片描述
配置代码如下:



下面我们便可以启动taotao-portal-web工程了,启动后,检查是否能访问tomcat首页及是否能访问,如下图所示。
在这里插入图片描述
接着看是否能访问tomcat后台管理页面,如下图所示,发现也可以。
在这里插入图片描述
下面我们修改下taotao-portal-web工程的pom.xml文件,如下图所示,注意中的IP为192.168.156.45,端口号是8081。
在这里插入图片描述
下面我们在taotao-portal-web工程上右键-------->Run As-------->Maven build…------->在弹出的对话框中的Goals一栏输入"clean tomcat7:redeploy",勾选下面的"Skip Tests"复选框,然后点击"Run"。如下图所示。
在这里插入图片描述

运行成功后,我们在dubbo管理页面的消费者信息当中可以看到多了一个消费者taotao-portal-web,而且该消费者只消费了一个服务,这与taotao-portal-web工程中的spriingmvc.xml配置文件引入的dubbo服务数量是一致的。
在这里插入图片描述

下面我们来访问192.168.156.45:8081,如下图所示,发现可以正常访问淘淘商城首页。(注意:前提是我们启动了taotao-image-server服务,否则图片出不来)
在这里插入图片描述

同理我们再部署下taotao-search-web工程,注意修改tomcat端口号和pom.xml文件中中的IP地址及端口号,部署成功后,我们在dubbo管理页面能够看到taotao-search-web这个消费者。
在这里插入图片描述

由于搜索涉及到跳转,需要修改jsp代码,这里就不测搜索功能了。

在实际项目中我能访问工程肯定不是访问IP的,而是通过域名访问的,因此我们这里也要配置一下,使我们可以通过域名来访问。首先我们修改下Windows系统本地的HOSTS文件,添加的映射如下所示,其中192.168.156.31这个IP是nginx服务器所在的IP。注意把以前学习的时候配置的关于192.168.156.31这台服务器的映射注释掉或删掉。避免影响测试结果。

192.168.156.31 manager.taotao.com
192.168.156.31 www.taotao.com
192.168.156.31 search.taotao.com
192.168.156.31 item.taotao.com
192.168.156.31 sso.taotao.com
192.168.156.31 cart.taotao.com
192.168.156.31 order.taotao.com

下面我们到nginx服务器进行配置,添加的配置如下图所示。
在这里插入图片描述

      添加的配置如下:

upstream manager.taotao.com{
server 192.168.156.45:8080;
}
upstream www.taotao.com{
server 192.168.156.45:8081;
}

server {
    listen       80;
    server_name  manager.taotao.com;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        proxy_pass   http://manager.taotao.com;
        index  index.html index.htm;
    }
}
server {
    listen       80;
    server_name  www.taotao.com;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        proxy_pass   http://www.taotao.com;
        index  index.html index.htm;
    }
}
   修改完nginx之后,我们启动nginx服务,如下所示。

[root@taotao-nginx-server nginx]# sbin/nginx
如果已经启动过nginx了,那么就重启nginx
[root@taotao-nginx-server nginx]# sbin/nginx -s reload

下面我们便尝试使用域名来访问淘淘商城首页,如下图所示,发现可以正常访问到商城首页。
在这里插入图片描述

 我们再尝试通过域名访问商城后台管理页面,如下图所示,没有问题。

在这里插入图片描述

至于商城页面之间的跳转及所有的请求,凡是涉及到localhost的,都要修改成域名,这样产品才能上线。我们只需全局搜索localhost即可,找到localhost的地方修改成相应的域名即可。

至此,淘淘商城所有的内容便说完了,感谢大家一路相伴。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值