一.tomcat/apache-tomcat-8.5.70/conf/server.xml组件类别介绍
1.类别
2.Connector参数
3.host参数
4.Context参数
二.web站点部署(以zrlog为例)
1.将zrlog的war包传到webapps下面
2.在mysql数据库中创建zrlog用户并赋予权限
3.完成安装向导,登录管理界面即可
一.tomcat/apache-tomcat-8.5.70/conf/server.xml组件类别介绍
1.类别
顶级组件 | 位于整个配置的顶层 | server |
示一个运行于
JVM
中的
tomcat
实例
|
容器类组件 | 可以包含其他组件的组件 | service |
将
connector
关联至
engine
,因此一个
service
内部可以有多个
connector
, 但只能有一 个引擎engine,
一般情况下一个
server
内部只有一个service
|
engine |
核心容器组件,
catalina
引擎,负责通过
connector
接收用户请求,并把请求转至对应的虚拟主机host
| ||
host |
类似于
httpd
中的虚拟主机,一般支持基于
FQDN
的虚拟主机
| ||
context |
定义一个应用程序,是一个最内层的容器类组件(不能再嵌套)。配置
context
的主要目的时指定对应的webapp
的根目录,类似于
httpd
的
alias,
还能为
webapp
指定额外的属性,如部署方式等
| ||
realm(容器类组件的一部分) | 用于处理用户身份验证和授权。它负责连接Tomcat容器与后端的用户数据库,比如LDAP、数据库、文件等,以验证用户的身份并确定其权限,关联用户认证库。认证库又分为
UserDatabaseRealm(使用
JNDI
自定义的用户认证库)、MemoryRealm(认证信息定义在
tomcat-users.xml
中)和JDBCRealm(认证信息定义在数据库中,并通过
JDBC
连接至数据库中查找认证用户)
| ||
连接器组件 | 连接用户请求到tomcat | Connector | 接收用户请求,类似于httpd的listen配置监听端口 |
被嵌套类组件 | 位于容器中,不能包含其他组件 | Valve |
阀门,拦截请求并在将其转至对应的
webapp
前进行某种处理操作,可以用于任何容器中,比
如记录日志
(access log valve)
、基于
IP
做访问控制
(remote address filter valve)
|
logger |
日志记录器,用于记录组件内部的状态信息,可以用于除
context
外的任何容器中
|
2.Connector参数
参数 | 含义 |
port |
指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。
|
address |
指定连接器监听的地址,默认为所有地址(即
0.0.0.0
)
|
protocol |
连接器使用的协议,支持
HTTP
和
AJP
。
AJP
(
Apache Jserv Protocol
)专
用于
tomcat
与
apache
建立通信的, 在
httpd
反向代理用户请求至
tomcat
时使用(可见
Nginx
反向代理时不可用
AJP
协议)
|
minProcessors/maxProcessors
|
服务器启动时至少/最大创建的处理请求的线程数
|
enableLookups
|
如果为
true
,则可以通过调用
request.getRemoteHost()
进行
DNS
查询来得到
远程客户端的实际主机名,若为
false
则不进行
DNS
查询,而是返回其
ip
地址
|
redirectPort
|
指定服务器正在处理
http
请求时收到了一个
SSL
传输请求后重定向的端口
号
|
acceptCount
|
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列
中的请求数,超过这个数的请求将不予处理
|
connectionTimeout
|
指定超时的时间数
(
以毫秒为单位
)
|
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
3.host参数
参数 | 含义 |
name | 指定主机名 |
appBase
|
应用程序基本目录,即存放应用程序的目录,
一般为appBase="webapps" ,是相对于
CATALINA_HOME
而言的,也可以写绝对路径。
|
unpackWARs
|
如果为
true
,则
tomcat
会自动将
WAR
文件解压,否则不解压,直接从
WAR
文件中运行应用程序
|
autoDeploy
|
在
tomcat
启动时,是否自动部署
|
xmlValidation
|
是否启动
xml
的校验功能,一般
xmlValidation="false"
|
xmlNamespaceAware
|
检测名称空间,一般
xmlNamespaceAware="false"
|
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
4.Context参数
参数 | 含义 |
Context
|
表示一个
web
应用程序,通常为
WAR
文件
|
docBase
|
应用程序的路径或者是
WAR
文件存放的路径
,
也可以使用相对路径,起始路径为此Context所属
Host
中
appBase
定义的路径
|
path
|
表示此
web
应用程序的
url
的前缀,这样请求的
url
为
http://本机IP:8080/path/
|
reloadable
|
这个属性非常重要,如果为
true
,则
tomcat
会自动检测应用程序的
/WEB-INF/lib
和
/WEB-INF/classes
目录的变化,自动装载新的应用程序,可以在不重启
tomcat
的
情况下改变应用程序
|
二.web站点部署(以zrlog为例)
1.将zrlog的war包传到webapps下面
[root@localhost webapps]# ll
total 11320
drwxr-x--- 15 tomcat tomcat 4096 Aug 6 20:47 docs
drwxr-x--- 7 tomcat tomcat 99 Aug 6 20:47 examples
drwxr-x--- 6 tomcat tomcat 79 Aug 6 20:47 host-manager
drwxr-x--- 6 tomcat tomcat 114 Aug 6 20:47 manager
drwxr-x--- 3 tomcat tomcat 223 Aug 6 20:47 ROOT
drwxr-x--- 8 tomcat tomcat 111 Aug 7 16:27 zrlog
-rw-r--r-- 1 root root 11585571 Aug 5 11:58 zrlog.war
[root@localhost webapps]# pwd
/usr/local/tomcat/apache-tomcat-8.5.70/webapps
2.在mysql数据库中创建zrlog用户并赋予权限
mysql8.0 [(none)]>create user 'zrlog'@'localhost' identified by 'Zrlog@317418';
Query OK, 0 rows affected (0.00 sec)
mysql8.0 [(none)]>grant all privileges on *.* to 'zrlog'@'localhost';
Query OK, 0 rows affected (0.02 sec)
mysql8.0 [(none)]>flush privileges;
Query OK, 0 rows affected (0.00 sec)
3.完成安装向导,登录管理界面即可