概述
大部分时候,我们的tomcat服务器都不是部署在本机,那么怎么样不通过ftp/sftp方式来将war包部署到tomcat容器呢?tomcat有提供web页面管理应用的功能。
tomcat页面管理
进入tomcat默认页面时有“server status”、“manager app”、“Host manager”三个选项如图:
默认情况下,点击会跳转到403 Access Denied报错页面
(如果是tomcat7按下面第1个配置就行了,tomcat8需要配置1和2)
1、配置用户密码
修改$
- <role rolename="manager"/>
- <role rolename="manager-gui"/>
- <role rolename="admin"/>
- <role rolename="admin-gui"/>
- <user username="tomcat" password="tomcat" roles="admin,manager,manager-gui,admin-gui"/>
2、修改配置
如无新建$
TOMCAT_HOME/conf/Catalina/localhost/manager.xml 内容如下:
- <Context privileged="true" antiResourceLocking="false"
- docBase="${catalina.home}/webapps/manager">
- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
- </Context>
无须重启tomcat即可生效。
点击“select WAR file to upload”后面的“浏览”按钮,选择需要发布的war包后,点击“deploy”,war即可发布成功。部署是否成功,需要关注头部的“Message: ”内容。
但是如果该war包已经在服务器上部署,则需要在页面中找到该应用,点击“undeploy”先取消部署。
通过以上配置后,基本上在发布版本的时候不会有什么问题,增加这个配置的好处就是当持续集成的服务器与tomcat不在同一服务器时,可以通过配置,实现自动部署
3、修改上传大小限制
在实际的项目过程中会发现war包的大小往往达到几十上百M,这时发布会出现失败,原因是tomcat默认最大只允许上传50M的文件,这时候需要去修改webapps\manager\WEB-INF\web.xml文件
找到
- <multipart-config>
- <!-- 50MB max -->
- <max-file-size>52428800</max-file-size>
- <max-request-size>52428800</max-request-size>
- <file-size-threshold>0</file-size-threshold>
- </multipart-config>
一段(大概在53行),将max-file-size、max-request-size值增大即可。
4、配置白名单
修改配置文件$
- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
- allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|172\.\d+\.\d+\.\d+|192\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
5、访问host manager
如果要访问host manager,还需要修改
webapps/host-manager/META-INF/目录下的context.xml文件,修改内容和上面一样。
保存,然后重启tomcat,重新访问server status、manager app页面,输出上面设置的用户名和密码,即可访问页面。
- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
- allow="^.*$" />