虚拟主机tomcat(虚拟主机和服务器一样吗?有何区别?)
本文目录一览:
虚拟主机上tomcat的安装
Tomcat在安 (装建议选用Tomcat6.0.x版本,下载通用版本Tomcat6.0.tar.gz格式)
1.将Tomcat6.0.tar.gz通过FTP上传到/usr/local/ 目录
2. tar zxvf Tomcat6.0.tar.gz (解压安装包)
3.cd bin
3.执行 ./startup.sh (启动tomcat服务, shutdown.sh为终止tomcat服务
tomcat监听端口默认为8080端口)
简单写了下。如果部署JAVAWEB 项目,先装JDK
https://www.wqiis.com/news/zb_users/upload/editor/water/2022-12-12/6397318c41d3c.jpeg" title="虚拟主机tomcat(虚拟主机和服务器一样吗?有何区别?)">
Tomcat 组件简介
title: Tomcat 组件简介
date: 2020/05/06 17:19
先简单介绍一下 Tomcat 中的各种组件,要不你后面听不懂
conf/server.xml
根据Tomcat自身的分类,上面这些元素可以分成四种:
一个Tomcat只有一个 Server.xml,即 一个Tomcat实例只有一个Server 。
它不是一个容器,它只是单纯地扮演着一个包裹的角色。
它代表 Tomcat 实例本身。
Server可配置的属性很少。根据上面摘录的默认配置,Server会侦听localhost的TCP端口8005,当该端口接收到字符串"SHUTDOWN"时,即执行关闭Tomcat操作。
Server有两种特有的组件,一个是GlobalNamingResources(全局命名资源),一个是Service(服务)。
除此之外,还可以有Listener(监听器)这种可以作用于不同层次容器的组件。Server默认配置了六种Listener。配置在Server这一层的Listener对所有容器起作用。
它代表整个 Tomcat 实例,因此它还有一个作用,就是监听 SHUTDOWN 请求。
它是一个顶层组件,用于包裹它下面的多个 Service 组件。
一个Service就是一个完整的服务, 负责将若干个Connector和一个Engine(引擎)包裹在一起 。除此之外,Service还可以配置一个Executor(共享线程池)用于管理所有Connector的线程数量。
如图所示,Service有Executor、Connector和Engine三种组件。其中,每个Connector负责侦听一个TCP端口,接收相应的请求,并转发给绑定的Engine处理。Engine处理完后,通过Connector把结果返回给客户端。在配置了Executor的情况下,所有Connector的线程受Executor统一管理。
它的作用是将多个连接器与容器实例联系起来,使得不同协议的请求可以使用同一个容器来处理。
Engine是Service的请求处理引擎,负责处理所有Connector发过来的请求,并将内部处理完毕的结果返回给Connector。它是最外层的容器。
Engine.name - 引擎的名称
Engine.defaultHost - 默认采用哪一个子容器Host来处理请求
Engine 的作用是可以采用一个连接器接收请求并映射到不同的域名中
一个Host就是一个虚拟主机,对应一个或多个域名。
Host.name - 主机名称(域名)
默认配置定义了一个名为 localhost 的主机。至少要有一个Host的名称与Engine的defaultHost一致。
除了域名外,Host可以通过子节点alias来配置别名。别名的作用与域名一致。例如:
其作用机制如下图所示:
Host.appBase - 虚拟主机的根目录
Host.unpackWARs - 放到 webapps 目录下的 WAR-file 是否应该被解压
Host.autoDeploy - 是否自动部署放到 webapps 目录下的应用
Context代表Host下面的一个虚拟目录。
默认是不配置的
Context.docBase - 应用程序的路径或者是WAR文件存放的路径
Context.path - 此web应用程序的上下文路径
Context.reloadable - 是否支持热部署
如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,并通过类加载器重新加载class文件,以实现在不重启tomcat的情况下重新部署。
Context.crossContext - 不同context是否共享session
开头说过,Connector就是墙上的插座,负责侦听一个具体的TCP端口,并通过该端口处理Engine与客户端之间的交互。默认配置定义了两个 Connector:
Valve的中文含义是阀门,可以简单地理解为Tomcat的拦截器。它负责在请求发送到应用之前拦截HTTP请求,可以定义在任何容器中。默认配置中定义了一个AccessLogValve,负责拦截HTTP请求,并写入到日志文件中。
Listener即监听器,负责监听服务器端的行为。此处需要了解的监听器有两个:
请求地址为:
Tomcat虚拟主机配置
站点根目录为: c:\wwwroot
站点一目录为: c:\wwwroot\aaa , 域名为
站点二目录为: c:\wwwroot\bbb , 域名为
站点三目录为: c:\wwwroot\ccc , 域名为
Tomcat 配置文件为: tomcat路径/conf/server.xml
站点根目录为: c:\wwwroot
站点一目录为: c:\wwwroot\aaa , 域名为
站点二目录为: c:\wwwroot\bbb , 域名为
Tomcat 配置文件为: tomcat路径/conf/server.xml
注: 若需不同域名访问将 Host name="localhost" appBase="c:\wwwroot" unpackWARs="true" autoDeploy="true" name 字段改为对应域名即可,多个域名可在 Host 标签内添加一个或多个 Alias;/Alias 即可。其中 Connector port、defaultHost、Hostname、appBase、docBase、日志 prefix 为你实际的即可。
a. 可以将不同 service 组件的 Engine name 都指定成 Catalina。
b. 可以将不同 service 组件的 Host appBase 指定成默认的 webapps。
c. Context docBase="/data/java/appstore-web" path="" reloadable="true" / 这个用于配置根路径项目,也就是 /data/java/appstore-web 包访问时是通过 ip:port 来访问,而不是传统的 ip:port/app
假设:
第一个tomcat文件夹为tomcat8-1,路径为 /home/tomcat8-1/
第二个tomcat文件夹为tomcat8-2,路径为 /home/tomcat8-2/
分别修改 tomcat 文件夹 /conf 目录下 server.xml 的监听端口为不同端口。
分别启动 tomcat 文件夹 /bin 目录下的 startup.sh 启动tomcat,停止同上文。
即可运行多个tomcat。
注:根据官方文档 tomcat8.5 且 JAVA7 及其以上才支持 SNI。如果 tomcat 版本较低且需要绑定多个域名情况下,建议使用反向代理方式部署 HTTPS。
在 Connector port="8080" 配置字段下新增 443 端口监听设置即可。
注:若IIS反向代理tomcat绑定https时,选择上启用SSL卸载。以免tomcat未配置HTTPS访问的情况下请求得不到正常响应。
如:
修改配置文件 tomcat路径/conf/tomcat-users.xml :
如何在Tomcat中配置虚拟主机
Host name="" appBase="webapps"
unpackWARs="true" autoDeploy="true"
Context path="" docBase="D:\test" reloadable="true" /
Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="longshuai_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" /
/Host
主要就是添加Host节点,比如我上面写的
name就是输入到地址栏中的访问地址
Context path="" docBase="D:\test" reloadable="true" /添加一个虚拟路径你把项目放到这个下面 就行。
当然还没结束,你还要在机器上做一个域名解析
比如windows下面
C:\Windows\System32\drivers\etc\hosts中添加如下记录:
服务器的ip
-------------------就这些了针对问题,给出回答,就不说的太复杂了。
发表评论
暂时没有评论,来抢沙发吧~