网站后台登陆显示验证码错误,虚拟主机做网站教程,1元购类似网站架设药多少钱,做旅游攻略的网站目录
一、Tomcat概述
1.Tomcat的简介
2.Tomcat 核心的三个组件
3.应用场景
4.Tomcat 请求过程
二、部署安装Tomcat
三、Tomcat 虚拟主机配置
四、Tomcat多实例部署 一、Tomcat概述
1.Tomcat的简介
Tomcat 是 Java 语言开发的#xff0c;Tomcat 服务器是一个免费的开…目录
一、Tomcat概述
1.Tomcat的简介
2.Tomcat 核心的三个组件
3.应用场景
4.Tomcat 请求过程
二、部署安装Tomcat
三、Tomcat 虚拟主机配置
四、Tomcat多实例部署 一、Tomcat概述
1.Tomcat的简介
Tomcat 是 Java 语言开发的Tomcat 服务器是一个免费的开放源代码的 Web 网站应用程序是 Apache 软件基金会的 Jakarta 项目中的一个核心项目由 Apache、Sun 和其他一些公司及个人共同开发而成。
注意Tomcat 是 Java 语言开发的这就要求安装jdk运行环境
Tomcat 属于轻量级应用服务器在中小型系统和并发访问用户不是很多的场合下被普遍使用是开发和调试 JSP 程序的首选。一般来说Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样具有处理 HTML 页面的功能然而由于其处理静态 HTML 的能力远不及 Apache 或者 Nginx所以 Tomcat 通常是作为一个 Servlet 和 JSP 容器单独运行在后端。 2.Tomcat 核心的三个组件
1Tomcat 三个组件的组成
1Web 容器完成 Web 服务器的功能。 2Servlet 容器名字为 catalina用于处理 Servlet 代码。 3JSP 容器用于将 JSP 动态网页翻译成 Servlet 代码。 总结因此 Tomcat 是 Web 应用服务器也是一个 Servlet/JSP 容器。Tomcat 作为 Servlet 容器负责处理客户的.jsp动态页面的请求把请求传送给 Servlet并将 Servlet 的响应传送回给客户。 补充知识
什么是 servlet Servlet 是Java Servlet 的简称可以理解为是一个服务连接器是用 Java 编写的服务器端程序具有独立于平台和协议的特性 简单的理解servlet 就是一个中间件包含了接口和方法将客户端和数据库连接从而实现动态网页的创建。
什么是 JSP? JSP 全称 Java Server Pages是一种动态网页开发技术。它使用 JSP 标签在HTML网页中插入 Java 代码。标签通常以 % 开头以 % 结束。 JSP 是一种 Java servlet主要用于实现 Java web 应用程序的用户界面部分。 JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源然后动态地创建网页。 2Tomcat 功能组件结构 Tomcat 的核心功能有两个分别是负责接收和反馈外部请求的连接器 Connector和负责处理请求的容器 Container。 其中连接器和容器相辅相成一起构成了基本的 web 服务 Service。每个 Tomcat 服务器可以管理多个 Service。
●Connector负责对外接收和响应请求。它是Tomcat与外界的交通枢纽监听端口接收外界请求并将请求处理后传递给容器做业务处理最后将容器处理后的结果响应给外界。
●Container负责对内处理业务逻辑。其内部由 Engine、Host、Context和Wrapper 四个容器组成用于管理和调用 Servlet 相关逻辑。
●Service对外提供的 Web 服务。主要包含 Connector 和 Container 两个核心组件以及其他功能组件。Tomcat 可以管理多个 Service且各 Service 之间相互独立。 3Container 结构分析
每个 Service 会包含一个 Container 容器。在 Container 内部包含了 4 个子容器 4个子容器的作用分别是 1Engine引擎用来管理多个虚拟主机一个 Service 最多只能有一个 Engine 2Host代表一个虚拟主机也可以叫站点通过配置 Host 就可以添加站点 3Context代表一个 Web 应用包含多个 Servlet 封装器 4Wrapper封装器容器的最底层。每一 Wrapper 封装着一个 Servlet负责对象实例的创建、执行和销毁功能。
注意Engine、Host、Context 和 Wrapper这四个容器之间属于父子关系。 容器 由一个引擎可以管理多个虚拟主机。每个虚拟主机可以管理多个 Web 应用。每个 Web 应用会有多个 Servlet 封装器。 3.应用场景
可以作为Web服务器处理静态网页请求如htm1页面但是性能一般(只有nginx的六分之一) 还可以作为servlet/jsp容器处理JAVA语言开发的jsp动态网页程序并作为中间件实现前端web和后端数据库的协同工作这也是tomcat的主要应用场景。 4.Tomcat 请求过程
1用户在浏览器中输入网址请求被发送到本机端口 8080被在那里监听的 Connector 获得 2Connector 把该请求交给它所在的 Service 的 EngineContainer来处理并等待 Engine 的回应 3请求在 Engine、Host、Context 和 Wrapper 这四个容器之间层层调用最后在 Servlet 中执行对应的业务逻辑、数据存储等。 4执行完之后的请求响应在 Context、Host、Engine 容器之间层层返回最后返回给 Connector并通过 Connector 返回给客户端。 二、部署安装Tomcat
在部署 Tomcat 之前必须安装好 jdk因为 jdk 是 Tomcat 运行的必要环境。
1.关闭防火墙将安装 Tomcat 所需软件包传到/opt目录下
jdk-8u391-linux-x64.tar.gz apache-tomcat-9.0.16.tar.gz
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
2.安装JDK
cd /opt
tar xf jdk-8u391-linux-x64.tar.gz
mv jdk1.8.0_391/ /usr/local/
java -version
3.设置JDK环境变量
获取JDK安装目录在/etc/profile文件里设置相关的环境变量 JAVA_HOME JRE_HOME CLASSPATH PATH
vim /etc/profileexport JAVA_HOME/usr/local/jdk1.8.0_391
export JRE_HOME$JAVA_HOME/jre
export CLASSPATH.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH$JAVA_HOME/bin:$JRE_HOME/bin:$PATHsource /etc/profile
java -version 首先使用文本工具编写java源代码比如 Hello.java 在命令行中输入命令javac Hello.java对源代码进行编译生成 class 字节码文件 编译完成后如果没有报错信息输入命令java Hello运行 class 字节码文件由 JVM 对字节码进行解释和运行打印 “Hello World”。
#类名、接口名命令英文大小写字母、数字字符、$和_不能使用关键字和数字开头 一个单词命名时第一个单词的首字母要大写多单词组成时所有单词的首字母大写XxxYyyZzz大驼峰命名法 vim Hello.javapublic class Hello { public static void main(String[] args){System.out.println(Hello world!);}
}javac Hello.java
java Hello
4.安装启动Tomcat
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat##启动tomcat ##
#后台启动
/usr/local/tomcat/bin/startup.sh
或
/usr/local/tomcat/bin/catalina.sh start #前台启动
/usr/local/tomcat/bin/catalina.sh run netstat -natp | grep 8080浏览器访问Tomcat的默认主页 http://IP:8080#systemd 管理控制启动
vim /usr/lib/systemd/system/tomcat.service
[Unit]
Descriptiontomcat server
Wantsnetwork-online.target
Afternetwork.target[Service]
Typeforking
EnvironmentJAVA_HOME/usr/java/jdk1.8.0_201-amd64
EnvironmentPATH$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
EnvironmentCLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ExecStart/usr/local/tomcat/bin/startup.sh
ExecStop/usr/local/tomcat/bin/shutdown.sh
Restarton-failure[Install]
WantedBymulti-user.targetsystemctl restart tomcat #启动
systemctl enable tomcat #配置自启
systemctl stop tomcat #停止服务
systemctl status tomcat #检测状态
补充知识
启动 tomcat 进程后台启动 tomcat目录/bin/startup.sh tomcat目录/bin/catalina.sh start 前台启动 tomcat目录/bin/catalina.sh run 关闭tomcat tomcat目录/bin/shutdown.sh
5.浏览器访问Tomcat的默认主页 http://IP:8080 5.优化tomcat启动速度 1第一次启动tomcat可能会发现 Tomcat 启动很慢默认情况下可能会需要几十秒可以修改jdk参数进行改。 vim /usr/local/jdk1.8.0_391/jre/lib/security/java.security#修改
securerandom.sourcefile:/dev/urandom
2主要目录说明
ll /usr/local/tomcat/
目录作用bin存放启动和关闭 Tomcat 的脚本文件如 catalina.sh、startup.sh、shutdown.sh conf存放 Tomcat 服务器的各种配置文件如主配置文件 server.xml 和 应用默认的部署描述文件 web.xml lib存放 Tomcat 运行需要的库文件的 jar 包一般不作任何改动logs存放 Tomcat 执行时的日志temp存放 Tomcat 运行时产生的文件webapps存放 Tomcat 默认的 Web 应用项目资源的目录workTomcat 的工作目录存放 jsp 编译后产生的 class 文件 三、Tomcat 虚拟主机配置
很多时候公司会有多个项目需要运行一般不会是在一台服务器上运行多个 Tomcat 服务这样会消耗太多的系统资源。此时 就需要使用到 Tomcat 虚拟主机。 例如现在新增两个域名 www.xy101.com 和 www.xy102.com 希望通过这两个域名访问到不同的项目内容。
1.创建 xy101 和 xy102 项目目录和文件
mkdir /usr/local/tomcat/webapps/xy101
mkdir /usr/local/tomcat/webapps/xy102
echo This is xy101 page\! /usr/local/tomcat/webapps/xy101/index.html
echo This is xy102 page\! /usr/local/tomcat/webapps/xy102/index.html
2.修改 Tomcat 主配置文件 server.xml
vim /usr/local/tomcat/conf/server.xml--165行前--插入
Host namewww.xy101.com appBasewebapps unpackWARstrue autoDeploytrue xmlValidationfalse xmlNamespaceAwarefalseContext docBase/usr/local/tomcat/webapps/xy101 path reloadabletrue /
/HostHost namewww.xy102.com appBasewebapps unpackWARstrue autoDeploytrue xmlValidationfalse xmlNamespaceAwarefalseContext docBase/usr/local/tomcat/webapps/xy102 path reloadabletrue /
/Host
Host name主机名 appBaseTomcat程序工作目录即存放web应用程序的目录相对路径为webapps绝对路径为 /usr/local/tomcat/webapps unpackWARs在启用此webapps时是否对WAR格式的归档文件先进行展开默认为true autoDeploy在Tomcat处于运行状态时放置于appBase目录中的应用程序文件是否自动进行deploy默认为true xmlValidation是否验证xml文件执行有效性检验的标志 xmlNamespaceAware是否启用xml命名空间设置该值与xmlValidation为true表示对web.xml文件执行有效性检验
Context docBase相应的Web应用程序的存放位置也可以使用相对路径起始路径为此Context所属Host中appBase定义的路径 path相对于Web服务器根路径而言的URI如果为空则表示为此webapp的根路径 / reloadable是否允许重新加载此context相关的Web应用程序的类默认为false
/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
3.客户端浏览器访问验证
echo 192.168.80.100 www.xy101.com www.xy102.com /etc/hosts
浏览器访问 http://www.xy101.com:8080/ 页面显示This is xy101 page! 浏览器访问 http://www.xy102.com:8080/ 页面显示This is xy102 page\! 四、Tomcat多实例部署
1.安装好 jdk
2.安装 tomcat
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mkdir /usr/local/tomcat
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2 3.配置 tomcat 环境变量
vim /etc/profile.d/tomcat.sh
#tomcat1
export CATALINA_HOME1/usr/local/tomcat/tomcat1
export CATALINA_BASE1/usr/local/tomcat/tomcat1
export TOMCAT_HOME1/usr/local/tomcat/tomcat1#tomcat2
export CATALINA_HOME2/usr/local/tomcat/tomcat2
export CATALINA_BASE2/usr/local/tomcat/tomcat2
export TOMCAT_HOME2/usr/local/tomcat/tomcat2source /etc/profile.d/tomcat.sh 4.修改 tomcat2 中的 server.xml 文件要求各 tomcat 实例配置不能有重复的端口号
vim /usr/local/tomcat/tomcat2/conf/server.xml
Server port8006 shutdownSHUTDOWN #22行修改Server prot默认为8005 - 修改为8006
Connector port8081 protocolHTTP/1.1 #69行修改Connector portHTTP/1.1 默认为8080 - 修改为8081
Connector port8010 protocolAJP/1.3 redirectPort8443 / #116行修改Connector port AJP/1.3默认为8009 - 修改为8010
注意第一个连接器默认监听8080端口负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时使用的就是这个连接器。 第二个连接器默认监听8009端口为AJP端口即容器使用如Apache能通过AJP协议访问Tomcat的8009端口。 8005端口关闭Tomcat时使用。
5.修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件添加 tomcat 环境变量
vim /usr/local/tomcat/tomcat1/bin/startup.sh ##添加以下内容
export CATALINA_BASE$CATALINA_BASE1
export CATALINA_HOME$CATALINA_HOME1
export TOMCAT_HOME$TOMCAT_HOME1
vim /usr/local/tomcat/tomcat1/bin/shutdown.shexport CATALINA_BASE$CATALINA_BASE1
export CATALINA_HOME$CATALINA_HOME1
export TOMCAT_HOME$TOMCAT_HOME1
vim /usr/local/tomcat/tomcat2/bin/startup.sh export CATALINA_BASE$CATALINA_BASE2
export CATALINA_HOME$CATALINA_HOME2
export TOMCAT_HOME$TOMCAT_HOME2
vim /usr/local/tomcat/tomcat2/bin/shutdown.shexport CATALINA_BASE$CATALINA_BASE2
export CATALINA_HOME$CATALINA_HOME2
export TOMCAT_HOME$TOMCAT_HOME2 6.启动各 tomcat 中的 /bin/startup.sh
/usr/local/tomcat/tomcat1/bin/startup.sh
/usr/local/tomcat/tomcat2/bin/startup.sh netstat -natp | grep java 7.浏览器访问测试 http://IP:8080 http://IP:8081