首页 > 技术文章 > 配置Tomcat、maven远程部署调试总结。

del88 2017-01-08 18:08 原文

注意:可以搞两个环境,一个本地tomcat 一个服务器上的tomcat ,然后都采用如下配置。这样就可以 在本地调试,调试好后,再发布到服务器端。非常方便。

 ===============================================以下的完整心得记录=========================================

 

1.修改/root/tomcat/conf/server.xml  由于聚石塔不开放8080端口,默认进行了网络拦截,而通常网站默认的都是80端口,聚石塔也开放了80端口。

所以为了能够访问,需要改成80端口.

 

这样之后可以这样访问了:http://121.41.xxx.xxx:80  或 http://121.41.xxx.xxx  如下图:

 

 

这个时候点击Manager App 是无法点开的会报错,同时我测试了下:

 

 这个时候 点不开拉倒,但是我们如果想maven远程部署的话,这步还是必须的,按照他们的提示,我们直接配置tomcat-users.xml,增加角色 和 用户,如下图:

 

 

 

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="wokao" password="liyuxin88" roles="manager-gui,manager-script"/>

 

 

具体意思可以去看官方的文档:

 

 

 

<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="wokao" password="liyuxin88" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>

 

增加后,重启tomcat 发现 点击 Manager App 依然是无法点开的,猜测可能是远程访问打不开,这个时候 本地访问 应该是可以打开的,但是我们通常时候 是需要 远程来访问的。到了 这步 我们先不管 能否

打开Manager App ,我们需要的是maven远程部署 既然服务器上的tomcat已经配置了一个账号和密码,那么我们本地的maven也是 需要配置下 账号和密码  以及maven插件的吧:

本地的maven配置如下:

 

 

            <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <configuration>
                <url>http://121.41.xxx.xxx:80/manager/text</url>
                <server>tomcat.server</server>
                <path>/wokao3</path>
                <username>wokao</username>
                <password>liyuxin88</password>
            </configuration>
        </plugin>

 

账号密码,正规的做法是写在maven的 settings.xml里,id 的名字 与 pom.xml里的 server名字对应,但是我为了省事发现 直接写在pom.xml里也是可以的

 

 

 

这个时候开始 打包项目 ,开始远程部署:

 

 

这个时候发现依然是不行的,无法部署的 Manager App 也是访问不了,原因是 tomcat为了安全 禁止了外部访问 。

所以还需要一步,修改下 /root/tomcat/webapps/manager/META-INF/context.xml  让tomcat的管理后台 可以外部访问,一旦管理后台能外部访问,也就可以远程部署了。

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />
</Context>

这样之后 我们再来访问Manager App 如下图:

 

同样开始远程部署也是可以的。

 

关于程序发布第一版后,后来修改再次发布 不重启tomcat的情况下,立即生效的方法: 

tomcat:redeploy 就行了 不重启tomcat的情况下 立即生效:

 

 

 

 

 

 

==============

 

 

 

 

 

推荐阅读