tomcat部署及上线项目与配置文件详解

1.tomcat简介

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为10.0,为了稳定我们使用9.0版本。
tomcat是中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中。而tomcat本身的运行也依赖于jdk环境。可用于lnmt等架构。

2.tomcat项目部署

//安装jdk环境
[root@localhost ~]# yum install -y java-11-openjdk*

//查看安装的版本
[root@localhost ~]# java -version
openjdk version "11.0.12" 2021-07-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.12+7-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7-LTS, mixed mode, sharing)
//下载tomcat
[root@localhost ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz

官网地址http://tomcat.apache.org/

//解压
[root@localhost ~]# tar xf apache-tomcat-9.0.54.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ls
apache-tomcat-9.0.54  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@localhost local]# mv apache-tomcat-9.0.54/  tomcat //改名方便查找
[root@localhost local]# ls tomcat/
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  temp  webapps  work
//不能做环境变量,可能会装多个tomcat,设置环境变量会造成冲突

//利用脚本启动tomcat
[root@localhost bin]# pwd
/usr/local/tomcat/bin
[root@localhost bin]# ls
bootstrap.jar       ciphers.bat                   configtest.bat  digest.sh         setclasspath.sh  startup.sh            tool-wrapper.sh
catalina-tasks.xml  ciphers.sh                    configtest.sh   makebase.bat      shutdown.bat     tomcat-juli.jar       version.bat
catalina.bat        commons-daemon-native.tar.gz  daemon.sh       makebase.sh       shutdown.sh      tomcat-native.tar.gz  version.sh
catalina.sh         commons-daemon.jar            digest.bat      setclasspath.bat  startup.bat      tool-wrapper.bat
[root@localhost bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost bin]# ss -antl
State             Recv-Q            Send-Q                            Local Address:Port                       Peer Address:Port           Process           
LISTEN            0                 128                                     0.0.0.0:22                              0.0.0.0:*                                
LISTEN            0                 1                            [::ffff:127.0.0.1]:8005                                  *:*                                
LISTEN            0                 100                                           *:8080                                  *:*                                
LISTEN            0                 128                                        [::]:22                                 [::]:*                                
8080为tomcat端口
//先关闭防火墙,然后输入ip加端口号访问
[root@localhost bin]# systemctl stop firewalld.service 

看到此页面表示部署成功

3.tomcat配置文件解析

//备份一下ROOT,然后清空
[root@localhost tomcat]# cp -a webapps/ROOT/ /opt/
[root@localhost tomcat]# rm -rf webapps//ROOT/*

刷新页面
发现什么都没了,也就是说ip+端口默认访问的是webapps//ROOT/

//进入ROOT下,写一个hello world的java页面
[root@localhost ROOT]# pwd
/usr/local/tomcat/webapps/ROOT
[root@localhost ROOT]# vim index.jsp
[root@localhost ROOT]# cat index.jsp 
<html>
<head>
     <title>test page</title>
</head>
<body>
                <%
        out.println("Hellow World");
                    %>
</body>
</html>

刷新页面
删除页面把之前备份的移回来

[root@localhost webapps]# rm -rf ROOT/
[root@localhost webapps]# cp -a /opt/ROOT/ .
[root@localhost webapps]# ls
ROOT  docs  examples  host-manager  manager

再次刷新页面

上线项目

//创建目录,移入测试页面
[root@localhost webapps]# mkdir test
[root@localhost webapps]# vim index.jsp
[root@localhost webapps]# ls
ROOT  docs  examples  host-manager  index.jsp  manager  test
[root@localhost webapps]# mv index.jsp test/
实际环境中开发人员会打包一个war包,只需要将包移到webapps下,然后重启tomcat,就会自动解压包,这个时候再去修改程序配置参数。


//ROOT对应首页
[root@localhost webapps]# ls
ROOT  docs  examples  host-manager  manager  test

随意点一个按钮进去

//密码修改为了tomcat
[root@localhost tomcat]# vim conf/tomcat-users.xml 
[root@localhost tomcat]# tail conf/tomcat-users.xml 
<role rolename="manager-gui"/>  #复制过来
<user username="tomcat" password="tomcat" roles="manager-gui"/>
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
</tomcat-users>

然后修改manager权限

[root@localhost tomcat]# ls webapps/manager/META-INF/
context.xml
[root@localhost tomcat]# vim  webapps/manager/META-INF/context.xml 
[root@localhost tomcat]# tail  webapps/manager/META-INF/context.xml 
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.216\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> #添加192.168.216的网段允许访问,原来只有本机能访问
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

把之前的页面刷新
输入我们之前设置的密码后
在这里插入图片描述

可以去控制每个项目,与主机上的webapps目录对应,卸载项目后,主机上对应项目也会被删除


bin文件解析

[root@localhost tomcat]# ls bin/
bootstrap.jar       ciphers.bat                   configtest.bat  digest.sh         setclasspath.sh  startup.sh            tool-wrapper.sh
catalina-tasks.xml  ciphers.sh                    configtest.sh   makebase.bat      shutdown.bat     tomcat-juli.jar       version.bat
catalina.bat        commons-daemon-native.tar.gz  daemon.sh       makebase.sh       shutdown.sh      tomcat-native.tar.gz  version.sh
catalina.sh         commons-daemon.jar            digest.bat      setclasspath.bat  startup.bat      tool-wrapper.bat
.batwindows上的批处理程序

catalina.sh控制 shutdown.sh和startup.sh,传递参数start就是startup.sh,反之就是shutdown.sh

同理按前面的步骤操作

[root@localhost tomcat]# vim conf/tomcat-users.xml 
[root@localhost tomcat]# tail -11 conf/tomcat-users.xml 
<role rolename="manager-gui"/>
<role rolename="admin-gui"/> #加入这个
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>   #逗号隔开,用一个账户管理
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
</tomcat-users>

去host-manager修改权限

[root@localhost tomcat]# vim webapps/host-manager/META-INF/context.xml 
[root@localhost tomcat]# tail webapps/host-manager/META-INF/context.xml 
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.216\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> #添加216网段
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

输入密码后

//server.xml存放tomcat端口号等信息,如果要在一台主机里面部署tomcat,就需要修改端口号
[root@localhost tomcat]# ls conf/
Catalina         catalina.properties  jaspic-providers.xml  logging.properties  tomcat-users.xml  web.xml
catalina.policy  context.xml          jaspic-providers.xsd  server.xml          tomcat-users.xsd

猜你喜欢

转载自blog.csdn.net/weixin_46115601/article/details/120812254