tomcat简介及部署

简介

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最新版本为9.0。

tomcat就是传说中的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中。而tomcat本身的运行也依赖于jdk环境。

tomcat应用场景:lnmt

Tomcat结构图:

在这里插入图片描述
Tomcat主要组件:服务器Server,服务Service,连接器Connector、容器Container。连接器Connector和容器Container是Tomcat的核心。

Connector

一个Container容器和一个或多个Connector组合在一起,加上其他一些支持的组件共同组成一个Service服务,有了Service服务便可以对外提供能力了,但是Service服务的生存需要一个环境,这个环境便是Server,Server组件为Service服务的正常使用提供了生存环境,Server组件可以同时管理一个或多个Service服务。
在这里插入图片描述
一个Connecter将在某个指定的端口上侦听客户请求,接收浏览器的发过来的 tcp 连接请求,创建一个 Request 和 Response 对象分别用于和请求端交换数据,然后会产生一个线程来处理这个请求并把产生的 Request 和 Response 对象传给处理Engine(Container中的一部分),从Engine出获得响应并返回客户。
Tomcat中有两个经典的Connector,一个直接侦听来自Browser的HTTP请求,另外一个来自其他的WebServer请求。HTTP/1.1 Connector在端口8080处侦听来自客户Browser的HTTP请求,AJP/1.3 Connector在端口8009处侦听其他Web Server(其他的HTTP服务器)的Servlet/JSP请求。
Connector 最重要的功能就是接收连接请求然后分配线程让 Container 来处理这个请求,所以这必然是多线程的,多线程的处理是 Connector 设计的核心。

Container是容器的父接口,该容器的设计用的是典型的责任链的设计模式,它由四个自容器组件构成,分别是Engine、Host、Context、Wrapper。这四个组件是负责关系,存在包含关系。通常一个Servlet class对应一个Wrapper,如果有多个Servlet定义多个Wrapper,如果有多个Wrapper就要定义一个更高的Container,如Context。
Context 还可以定义在父容器 Host 中,Host 不是必须的,但是要运行 war 程序,就必须要 Host,因为 war 中必有 web.xml 文件,这个文件的解析就需要 Host 了,如果要有多个 Host 就要定义一个 top 容器 Engine 了。而 Engine 没有父容器了,一个 Engine 代表一个完整的 Servlet 引擎。

2. tomcat项目部署

java环境安装

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

//查看安装的版本
[root@wyt2 ~]# java -version
openjdk version "1.8.0_222-ea"
OpenJDK Runtime Environment (build 1.8.0_222-ea-b03)
OpenJDK 64-Bit Server VM (build 25.222-b03, mixed mode)

tomcat部署

//在官网下载tomcat  官网地址http://tomcat.apache.org/
[root@wyt2 ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.37.tar.gz

//解压tomcat  
[root@wyt2 ~]# tar xf apache-tomcat-9.0.37.tar.gz  -C /usr/local
[root@wyt2 ~]# cd /usr/local
[root@wyt2 local]# ln -s  apache-tomcat-9.0.37/ tomcat //创建软连接
[root@wyt2 local]# ll
总用量 0
drwxr-xr-x  9 root root 220 7月  31 18:31 apache-tomcat-9.0.37
drwxr-xr-x. 2 root root   6 4月  11 2018 bin
drwxr-xr-x. 2 root root   6 4月  11 2018 etc
drwxr-xr-x. 2 root root   6 4月  11 2018 games
drwxr-xr-x. 2 root root   6 4月  11 2018 include
drwxr-xr-x. 2 root root   6 4月  11 2018 lib
drwxr-xr-x. 2 root root   6 4月  11 2018 lib64
drwxr-xr-x. 2 root root   6 4月  11 2018 libexec
drwxr-xr-x. 2 root root   6 4月  11 2018 sbin
drwxr-xr-x. 5 root root  49 7月  29 17:46 share
drwxr-xr-x. 2 root root   6 4月  11 2018 src
lrwxrwxrwx  1 root root  21 7月  31 18:31 tomcat -> apache-tomcat-9.0.37/

写一个hello world的java页面

[root@wyt2 ~]# vim index.jsp

<html>
<head>
        <title>test page</title>
</head>
<body>
        <%
            out.println("Hello World");
        %>
</body>
</html>

创建网页放置文件

[root@wyt2 ~]# mkdir /usr/local/tomcat/webapps/test
[root@wyt2 ~]# cp index.jsp /usr/local/tomcat/webapps/test/
[root@wyt2 ~]# ll /usr/local/tomcat/webapps/test/
总用量 4
-rw-r--r-- 1 root root 140 7月  31 18:34 index.jsp

启动tomcat

[root@wyt2 ~]# /usr/local/tomcat/bin/catalina.sh start
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
Tomcat started.
[root@wyt2 ~]#  ps -ef|grep tomcat
root       1458      1 99 18:34 pts/0    00:00:05 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       1487   1197  0 18:34 pts/0    00:00:00 grep --color=auto tomcat
[root@wyt2 ~]# ss -antl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      100    127.0.0.1:25                        *:*                  
LISTEN      0      128           *:22                        *:*                  
LISTEN      0      100       [::1]:25                     [::]:*  

去浏览器上访问网页

在这里插入图片描述

3.tomcat多项目部署

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

//下载安装包
[root@wyt2 ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.37.tar.gz
[root@wyt2 ~]# tar xf apache-tomcat-9.0.37.tar.gz //解压到当前目录
[root@wyt2 ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.37  apache-tomcat-9.0.37.tar.gz
[root@wyt2 ~]# cd /usr/local 
[root@wyt2 local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@wyt2 local]# mkdir tomcat //创建tomcat
[root@wyt2 local]# cd tomcat/
[root@wyt2 tomcat]# pwd
/usr/local/tomcat
[root@wyt2 tomcat]# cd
[root@wyt2 ~]# mv apache-tomcat-9.0.37 /usr/local/tomcat/qq  移动tomcat到qq项目
[root@wyt2 ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.37.tar.gz
[root@wyt2 ~]# tar xf apache-tomcat-9.0.37.tar.gz  //解压到当前目录
[root@wyt2 ~]# mv apache-tomcat-9.0.37 /usr/local/tomcat/weixin 移动tomcat到weixin项目
[root@wyt2 ~]# cd /usr/local/tomcat //进入tmocat
[root@wyt2 tomcat]# ls
qq  weixin
[root@wyt2 tomcat]# ls qq //查看qq项目
bin           CONTRIBUTING.md  logs       RELEASE-NOTES  webapps
BUILDING.txt  lib              NOTICE     RUNNING.txt    work
conf          LICENSE          README.md  temp

[root@wyt2 tomcat]# ls weixin //查看weixin项目
bin           CONTRIBUTING.md  logs       RELEASE-NOTES  webapps
BUILDING.txt  lib              NOTICE     RUNNING.txt    work
conf          LICENSE          README.md  temp

[root@wyt2 conf]# cd /usr/local/tomcat/qq/conf
[root@wyt2 conf]# vim server.xml  //编辑配置文件
<Server port="8006" shutdown="SHUTDOWN">  //修改默认端口号
<Connector port="8081" protocol="HTTP/1.1"    //修改默认端口号
               connectionTimeout="20000"
               redirectPort="8444" />       //修改默认端口号
               
[root@wyt2 conf]# /usr/local/tomcat/qq/bin/startup.sh //启动qq
Using CATALINA_BASE:   /usr/local/tomcat/qq
Using CATALINA_HOME:   /usr/local/tomcat/qq
Using CATALINA_TMPDIR: /usr/local/tomcat/qq/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/qq/bin/bootstrap.jar:/usr/local/tomcat/qq/bin/tomcat-juli.jar
Tomcat started.
[root@wyt2 ~]# /usr/local/tomcat/weixin/bin/startup.sh //启动weixin
Using CATALINA_BASE:   /usr/local/tomcat/weixin
Using CATALINA_HOME:   /usr/local/tomcat/weixin
Using CATALINA_TMPDIR: /usr/local/tomcat/weixin/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/weixin/bin/bootstrap.jar:/usr/local/tomcat/weixin/bin/tomcat-juli.jar
Tomcat started.

[root@wyt2 ~]# ss -antl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      100    127.0.0.1:25                    *:*                  
LISTEN      0      128       *:22                    *:*                  
LISTEN      0      100       [::1]:25                 [::]:*                  
LISTEN      0      1        [::ffff:127.0.0.1]:8005               [::]:*                  
LISTEN      0      1        [::ffff:127.0.0.1]:8006               [::]:*                  
LISTEN      0      100    [::]:8080               [::]:*                  
LISTEN      0      100    [::]:8081               [::]:*                  
LISTEN      0      128    [::]:22                 [::]:*                  
[root@wyt2 ~]# ps -ef|grep tomcat
root      10045      1  0 11:32 pts/0    00:00:15 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/qq/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/qq/bin/bootstrap.jar:/usr/local/tomcat/qq/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/qq -Dcatalina.home=/usr/local/tomcat/qq -Djava.io.tmpdir=/usr/local/tomcat/qq/temp org.apache.catalina.startup.Bootstrap start
root      10220      1 28 12:01 pts/0    00:00:06 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/qq/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/qq/bin/bootstrap.jar:/usr/local/tomcat/qq/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/qq -Dcatalina.home=/usr/local/tomcat/qq -Djava.io.tmpdir=/usr/local/tomcat/qq/temp org.apache.catalina.startup.Bootstrap start
root      10251   9773  0 12:01 pts/0    00:00:00 grep --color=auto tomcat

访问web界面

在这里插入图片描述

需要修改配置文件才能访问 server status Manager App Host Manager

[root@wyt2 webapps]# cd /usr/local/tomcat/weixin/conf  
[root@wyt2 conf]# vim tomcat-users.xml
<role rolename="manager-gui"/>  //允许访问项目管理工具
<role rolename="admin-gui"/> //允许访问项目管理工具的用户
<user username="tomcat" password="123456" roles="manager-gui,admin-gui"/> //添加用户密码

[root@wyt2 conf]# cd /usr/local/tomcat/weixin/webapps/manager/META-INF  
[root@wyt2 META-INF]# vim context.xml
allow="192\.168\.179\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"  //添加允许访问的网段

[root@wyt2 META-INF]# cd /usr/local/tomcat/weixin/webapps/host-manager/META-INF
[root@wyt2 META-INF]# vim context.xml 
allow="192\.168\.179\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" //添加允许主机管理工具的网段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lnsistw/article/details/107706982