网站首页有被收录就是最近没有被抓取是怎么回事,网站建设资金请示,西安哪里有做网站的,郑州人流医院哪家好目录 1、概念介绍
Tomcat 组件
HTTP 请求过程
Tomcat 目录结构
Tomcat 命令
配置文件说明
2、安装环境
安装JDK
安装Tomcat
创建管理用户
3、搭建虚拟主机 1、概念介绍
端口#xff1a;8080
Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器, 按照 Sun 提供…目录 1、概念介绍
Tomcat 组件
HTTP 请求过程
Tomcat 目录结构
Tomcat 命令
配置文件说明
2、安装环境
安装JDK
安装Tomcat
创建管理用户
3、搭建虚拟主机 1、概念介绍
端口8080
Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器, 按照 Sun 提供的技术规范实现了对 Servlet 和 Java Server PageJSP的支持。使用 HTTP 协议与客户端通常是浏览器进行通信。Tomcat 是一个小型的轻量级应用服务器在中小型系统和并发访问用户不是很多的场合下被普遍使用是开发和调试 JSP 程序的首选因为 Tomcat 技术先进、性能稳定成为目前比较流行的 Web 应用服务器。Tomcat 是应用java服务器它只是一个 servlet 容器是 Apache 的扩展但它是独立运行的。由于 Tomcat 本身也内含了一个 HTTP 服务器它也可以被视作一个单独的 Web 服务器。
Tomcat 和 apache、nginx 等 Web 服务器一样具有处理 HTML 页面的功能。不过Tomcat 处理静态 HTML 的能力不如 Apache 和 nginx 服务器。
Web serever 只能完成静态资源的请求Servlet 容器能够进行动态资源的请求
Servlet
ServletServer Applet是 Java Servlet 的简称称为小服务程序或服务连接器用 Java 编写的服务器端程序主要功能在于交互式地浏览和修改数据生成动态Web 内容。
Servlet 架构在软件里面位置如下 1、客户端发送请求至服务器端
2、服务器将请求信息发送至 Servlet
3、Servlet 生成响应内容并将其传给服务器。响应内容动态生成通常取决于客户端的请求
4、服务器将响应返回给客户端。
Tomcat 组件 Tomcat 主要组件服务器 Server服务 Service连接器 Connector、容器 Container。连接器 Connector 和容器 Container 是 Tomcat 的核心。 Tomcat 组件 说明 Server Tomcat 中最顶层的容器是 代表着整个服务器一个Server 可以包含至少一个 Service用于具体提供服务。 Connector 用于处理连接相关的事情并提供 Socket 与 Request 和 Response 相关的转化 Container 用于封装和管理 Servlet以及具体处理 Request 请求。
Tomcat 还有其它重要的组件如安全组件 security、logger 日志组件、session、 mbeans、naming 等其它组件。这些组件共同为 Connector 和 Container 提供必要的服务。
Connector
一个 Connecter 将在某个指定的端口上侦听客户请求接收浏览器发过来的tcp 连接请求创建一个 Request 和 Response 对象分别用于和请求端交换数据 然后会产生一个线程来处理这个请求并把产生的 Request 和 Response 对象传给处理 Engine(Container 中的一部分)从 Engine 出获得响应并返回客户。 一个服务可以有多个连接如同时提供 Http 和 Https 链接也可以提供向相同协议不同端口的连接 Tomcat 中有两个经典的 Connector一个直接侦听来自 Browser 的 HTTP 请求另外一个来自其他的 WebServer 请求。HTTP/1.1 Connector 在端口 8080 处侦听来自客户 Browser 的 HTTP 请求AJP/1.3 Connector 在端口 8009 处侦听其他 Web Server 的 Servlet/JSP 请求。 http 协议访问端默认为 8080负责建立 HTTP 连接。在通过浏览器访问 Tomcat服务器的 Web 应用时使用的就是这个连接器。
AJP 协议访问端口默认为 8009 端口负责和其他的 HTTP 服务器建立连接。在把 Tomcat 与其他 HTTP 服务器集成时就需要用到这个连接器。 Container
Container 用于封装和管理 Servlet以及具体处理 Request 请求在 Container 内部包含了 4 个子容器 ① Engine引擎用来管理多个站点一个 Service 最多只能有一个 Engine
Engine 用来接收并处理从 Connector 发来的请求并将处理结果返回 Connector。 一个 Engine 可以包含一个或多个 Host。
Engine 下可以配置多个虚拟主机 Virtual Host每个虚拟主机都有一个域名当Engine 获得一个请求时它把该请求匹配到某个 Host 上然后把该请求交给该 Host 来处理。Engine 有一个默认虚拟主机当请求无法匹配到任何一个 Host 上的时候将交给该默认 Host 来处理。 ② Host代表一个 Virtual Host虚拟主机。
每个虚拟主机和某个网络域名 Domain Name 相匹配每个虚拟主机下都可以部署一个或者多个 Web App每个 Web App 对应于一个 Context有一个 Context path。
当 Host 获得一个请求时将把该请求匹配到某个 Context 上然后把该请求交给该 Context 来处理。匹配的方法是“最长匹配”所以一个 path的 Context 将成为该 Host 的默认 Context所有无法和其它 Context 的路径名匹配的请求都将最终和该默认 Context 匹配。 ③ Context一个 Context 对应于一个 Web Application。
一个 Web Application 由 一 个 或 者 多 个 Servlet 组 成 。 Context 在 创 建 的 时 候 将 根 据 配 置 文 件 $CATALINA_HOME/conf/web.xml 和 $WEBAPP_HOME/WEB-INF/web.xml 载入 Servlet 类当 Context 获得请求时将在自己的映射表(mapping table)中寻找相匹配的 Servlet 类如果找到则执行该类获得请求的回应并返回。 ④ Wrapper每一 Wrapper 封装着一个 Servlet。
Wrapper 代表一个 Servlet它负责管理一个 Servlet包括的 Servlet 的装载、初始化、执行以及资源回收。Wrapper 是最底层的容器它没有子容器了。
HTTP 请求过程 Tomcat Server 处理一个 HTTP 请求的过程
① 用户点击网页内容请求被发送到本机端口 8080被在那里监听的 Coyote HTTP/1.1 Connector 获得。
② Connector 把该请求交给它所在的 Service 的 Engine 来处理并等待 Engine 的回应。
③ Engine 获得请求 localhost/test/index.jsp匹配所有的虚拟主机 Host。
④ Engine 匹配到名为 localhost 的 Host即使匹配不到也把请求交给该 Host 处理因为该 Host 被定义为该 Engine 的默认主机名为 localhost 的 Host 获得请求/test/index.jsp匹配它所拥有的所有的 Context。Host 匹配到路径为/test 的 Context 如果匹配不到就把该请求交给路径名为 path””的 Context 去处理
⑤ path“/test”的 Context 获得请求/index.jsp在它的 mapping table 中寻找出对应的 Servlet。Context 匹配到 URL PATTERN 为*.jsp 的 Servlet,对应于 JspServlet 类。
⑥ 构造 HttpServletRequest 对象和 HttpServletResponse 对象作为参数调用JspServlet 的 doGet或 doPost.执行业务逻辑、数据存储等程序。
⑦ Context 把执行完之后的 HttpServletResponse 对象返回给 Host。
⑧ Host 把 HttpServletResponse 对象返回给 Engine。
⑨ Engine 把 HttpServletResponse 对象返回 Connector。
⑩ Connector 把 HttpServletResponse 对象返回给客户 Browser。
Tomcat 目录结构
|---bin存放启动和关闭 tomcat 执行脚本
|---conf 存放 Tomcat 服务器的各种全局配置文件其中最重要的是server.xml 和 web.xml
|---lib 存放 Tomcat 运行需要的库文件jar包含 Tomcat 使用的 jar 文件。unix 平台此目录下的任何文件都被加到 Tomcat 的 classpath 中
|---logs存放 Tomcat 执行时的 LOG 文件
|---webappsTomcat 的主要 Web 发布目录默认情况下把 Web 应用文件放于此目录即供外界访问的 web 资源的存放目录
|--- webapps/ROOTtomcat 的家目录
|--- webapps/ROOT/ index.jspTomcat 的默认首页文件
|---work存放 jsp 编译后产生的 class 文件或 servlet 文件存放
|---temp存放 Tomcat 运行时所产生的临时文件
Tomcat 命令 bat 为 windows 下的脚本批处理 sh 为 Linux 下的脚本Shell
catalina.sh一个最关键的脚本其他的启动脚本如 startupshutdown.sh,都是使用了不同的参数调用了该脚本startup 以 start 参数调用了 catalina 脚本 shutdown 使用 stop 调用了 catalina 脚本
配置文件说明
server.xml文件:该文件用于配置和server相关的信息比如tomcat启动的端口号、
配置 host 主机、配置 Context web.xml 文件部署描述文件web.xml 文件有两部分Servlet 类定义和 Servlet 映射定义。
这个 web.xml 中描述了一些默认的 servlet部署每个 webapp 时都会调用这个文件。
这个文件中也注册了很多 MIME 类型即文档类型。这些 MIME 类型是客户端与
服务器之间说明文档类型的如用户请求一个 html 网页那么服务器会告诉客户
端浏览器响应的文档是 text/html 类型的这就是一个 MIME 类型。客户端浏览器
通过这个 MIME 类型就知道如何处理它了。当然是在浏览器中显示这个 html 文件
了。但如果服务器响应的是一个 exe 文件那么浏览器就不可能显示它而是应该
弹出下载窗口才对。MIME 就是用来说明文档的内容是什么类型的tomcat-users.xml 文件配置 tomcat 的用户密码与权限。context.xml每个 webapp 都可以使用的配置文件它通常由专用的配置文件
context.xml 来定义其存放位置为 WEB-INF/目录中此文件为所有的 webapps 提
供默认配置例如 context.xml 里设置 tomcat 数据源用来连接数据库。catalina.policy当使用-security 选项启动 tomcat 时用于为 tomcat 设置安全策略
catalina.propertiesJava 属性的定义文件用于设定类加载器路径以及一些与JVM 调优相关参数
logging.properties日志系统相关的配置
2、安装环境
① 下载TomcatApache Tomcat® - Apache Tomcat 8 Software Downloads ② 下载mysql-connector-javahttps://dev.mysql.com/downloads/ ③ 下载JDK技术资源 | Oracle 中国 安装JDK
# 解压 jdk
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/# 配置 JDK 环境变量
vim /etc/profile # 在文件最后加入一下行
JAVA_HOME/usr/local/jdk1.8.0_171
PATH$JAVA_HOME/bin:$PATH
CLASSPATH$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
# 使环境变量生效
source /etc/profile
安装Tomcat
# 解压软件包
tar -zxvf apache-tomcat-8.5.42.tar.gz -C /usr/local/
# 更改目录名称
mv /usr/local/apache-tomcat-8.5.98/ /usr/local/tomcat
注意Tomcat 有两种安装方式一种是直接解压就可以使用的二进制文件第二种是编译安装我们这里采用了第一种方法下载的 tomcat 软件直接解压就可以执行的二进制文件因为在官方默认下载的便是使用第一种方法安装。
Tomcat 服务启动脚本
#!/bin/bash
# description:The Apache Tomcat Server/JSP containerJAVA_HOME/usr/local/jdk1.8.0_171
CATALINA_HOME/usr/local/tomcat# tomcat start file
start_tomcat$CATALINA_HOME/bin/startup.sh
# tomcat stop file
stop_tomcat$CATALINA_HOME/bin/shutdown.shstart(){echo -n Starting tomcat...${start_tomcat}
}stop(){echo -n Shutting down tomcat...${stop_tomcat}echo Tomcat stop ok.
}# See how we were called
case $1 instart)start;;stop)stop;;restart)stopsleep 5start;;*)echo Usage:$0{start|stop|restart}
esac
# 启动脚本添加执行权限
chmod x /etc/init.d/tomcat
Tomcat 系统服务文件
vim /lib/systemd/system/tomcat.service[Unit]
Descriptiontomcat
Afternetwork.target[Service]
Typeforking
EnvironmentJAVA_HOME/usr/local/jdk1.8.0_171
EnvironmentCATALINA_HOME/usr/local/tomcat
ExecStart/usr/local/tomcat/bin/startup.sh start
ExecStop/usr/local/tomcat/bin/shutdown.sh stop
PrivateTmptrue[Install]
WantedBymulti-user.target# 重载 service 文件
systemctl daemon-reload
# 启动 tomcat
systemctl start tomcat # 添加开机自启动
systemctl enable tomcat ps -ef | grep tomcat创建管理用户 # 修改 tomcat-users.xml 配置文件
vim /usr/local/tomcat/conf/tomcat-users.xmltomcat-users xmlnshttp://tomcat.apache.org/xmlxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://tomcat.apache.org/xml tomcat-users.xsdversion1.0role rolenameadmin-gui/ role rolenameadmin-script/ role rolenamemanager-gui/ role rolenamemanager-script/ role rolenamemanager-jmx/ role rolenamemanager-status/ user usernameadmin password123456 rolesmanager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui/
/tomcat-users角色 说明 manager-gui Allows access to the html interface manager-script Allows access to the plain text interface manager-jmx Allows access to the JMX proxy interface manager-status Allows access to the read-only status pages admin-gui 允许访问 HTML GUI admin-script 允许访问文本接口
tomcat8 以上还要增加以下配置 vim /usr/local/tomcat/conf/Catalina/localhost/manager.xmlContext privilegedtrue antiResourceLockingfalse docBase${catalina.home}/webapps/manager Valve classNameorg.apache.catalina.valves.RemoteAddrValve allow^.*$ //Contextvim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
Context antiResourceLockingfalse privilegedtrue
Valve classNameorg.apache.catalina.valves.RemoteAddrValve
allow^.*$ /
重启服务重新点击Manager App - 输入admin 123456 3、搭建虚拟主机
搭建基于域名的虚拟主机server.xml 是 Tomcat 的主配置文件全局,服务器设置的例如端口设置路径设置。
# 修改 server.xml 配置文件
vim /usr/local/tomcat/conf/server.xml# 在engine标签里添加
Host namewww.test.com appBase/www/html Context path docBase/www/html/web1 /
/Host
Host namewww.test.cn appBase/www/html Context path docBase/www/html/web2 /
/Host Host 元素|子标签 说明 name 指定虚拟主机的名称那么使用对应的 ip 将无法访问如果需要使用 ip 来访问需要把 host 的 name 属性改成 ip 即可。 appBase 指定应用程序(网站)的根目录,这里可以存放多个程序(网站),一般是相对路径,相对于 tomcat 的安装目录。 Context path 为虚拟目录如果是空表示直接就是/如果是如 pathaa,那么访问的时候就是 site:8080/aa Context docBase 为实际目录可以是绝对路径如果是相对路径就是基于appBase # 创建测试网页
mkdir -p /www/html/{web1,web2}
echo test.com web1 /www/html/web1/index.html
echo test.cn web2 /www/html/web2/index.html # 修改 hosts
vim /etc/hosts
192.168.1.11 www.test.com
192.168.1.11 www.test.cn# windows 客户端修改 hosts
C:\Windows\System32\drivers\etc
192.168.1.11 www.test.com
192.168.1.11 www.test.cn# 重启 tomcat
systemctl restart tomcat