Centos7系统部署tomcat与核心目录
首先是下载安装软件(这里用yum的方式,也可以自行下载jdk进行安装但是要设定环境变量)
[root@kk ~]# yum -y install java
[root@kk ~]# java -version //看眼java版本ok openjdk version "1.8.0_232" OpenJDK Runtime Environment (build 1.8.0_232-b09) OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
- 去apache官网下载tomcat,这里我们下载8.5版本的tomcat
创建目录,解压tomcat,创建软连接
[root@kk application]# mkdir -p /application
[root@kk application]# tar xf apache-tomcat-8.5.50.tar.gz
[root@kk application]# ln -s apache-tomcat-8.5.50 tomcat [root@kk application]# ll total 10072 drwxr-xr-x 9 root root 4096 Jan 7 20:18 apache-tomcat-8.5.50 -rw-r--r-- 1 root root 10305939 Jan 7 20:02 apache-tomcat-8.5.50.tar.gz lrwxrwxrwx 1 root root 20 Jan 7 20:18 tomcat -> apache-tomcat-8.5.50
启动tomcat
[root@kk bin]# sh startup.sh Using CATALINA_BASE: /application/tomcat Using CATALINA_HOME: /application/tomcat Using CATALINA_TMPDIR: /application/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar Tomcat started. [root@kk bin]# netstat -lntup|grep java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 10073/java tcp6 0 0 :::8009 :::* LISTEN 10073/java tcp6 0 0 :::8080 :::* LISTEN 10073/java
经典的画面
tomcat常用目录结构
[root@kk application]# tree -L 1 tomcat/ tomcat/ |-- bin tomcat命令目录(windows和linux) |-- BUILDING.txt |-- conf tomcat配置文件 |-- CONTRIBUTING.md |-- lib 存放web应用能访问的 JAR包 |-- LICENSE |-- logs catalina和其它web的日志文件 |-- NOTICE |-- README.md |-- RELEASE-NOTES |-- RUNNING.txt |-- temp 临时文件 |-- webapps 应用程序类似与站点目录(自动解压war包) `-- work 放置缓存内容
tomcat/webapps/结构(正常工作中只留一个空ROOT,其它都移动走或者删除)
[root@kk tomcat]# tree -L 1 webapps/ webapps/ |-- docs 站点目录(放置说明文档) |-- examples 站点目录(放置示例页面) |-- host-manager 站点目录(管理端----------要删除) |-- manager 站点目录(管理端----------要删除) `-- ROOT 站点根目录
tomcat/bin/结构(常用命令)
[root@kk tomcat]# tree -L 1 bin/ bin/ |-- catalina.sh 核心管理脚本,jvm优化参数及相关配置,修改tomcat启动参数 |-- shutdown.sh 关闭tomcat的脚本 |-- startup.sh 启动tomcat的脚本 `-- version.sh 可以查看系统参数的脚本
/tomcat/logs/结构
[root@kk tomcat]# tree logs/ logs/ |-- catalina.2020-01-07.log |-- catalina.out tomcat最详细的目录,(缺点没有切割,要定期>) |-- host-manager.2020-01-07.log 管理端日志(管理端已经被删除了) |-- localhost.2020-01-07.log |-- localhost_access_log.2020-01-07.txt `-- manager.2020-01-07.log 管理端日志(管理端已经被删除了)
/tomcat/conf/结构
[root@kk tomcat]# tree -L 1 conf/ conf/ |-- Catalina |-- catalina.policy |-- catalina.properties |-- context.xml 对所有应用的统一配置,通常我们不会去配置它。 |-- jaspic-providers.xml |-- logging.properties |-- server.xml 配置整个服务器信息 |-- tomcat-users.xml 存储tomcat用户的文件,这里保存的是tomcat的用户名及密码 `-- web.xml
server.xml(类似于nginx的nginx.conf)
<Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> #要把这里的默认端口,和口令都修改了 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> #要是单台服务器配置lnmt这里可以改80端口 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> #如果不需要可以注释掉8009 <Engine name="Catalina" defaultHost="localhost"> #引擎,这里要是写了域名,有defaulthost指定哪个host是默认站点 <Host name="这里写域名" appBase="webapps" unpackWARs="true" autoDeploy="true"> #host name类似于nignx的server_name #appBase=站点根目录 #unpackWARs=true就是上传war包自动解压 #autoDeploy=true类似与nginx的reload发生变化自动加载 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> #日志相关
server.xml组件
tomcat组件的类型
- 顶级组件:位于整个配置的顶层,如server
容器类组件:可以包含其它组件的组件,如server,engine,host,context
连接器组件:连接用户请求至tomcat,如connector
被嵌套类组件:位于一个容器内,不能包含其它组件,如Valve,logger. <server> <service> <connector /> <engine> <host> <context></context> </host> <host> <context></context> </host> </engine> </service> </server>
组件的详情
engine:核心容器组件,catalina引擎,负责通过connector接受用户请求,并处理请求,将请求转至对应的虚拟主机host host:类似于httpd中的虚拟主机,一般而言支持基于FQDN的虚拟主机 context:定义一个应用程序,是一个最内层的容器类组件(不能再嵌套).篇日志context的主要目的指定对应的 webapp的根目录,类似于httpd的alias,其还能为webapp指定额外的属性,如部署方式等. connector:接收用户请求,类似于httpd的listen配置监听端口. service(服务):将connector关联至engine,因此一个service内部可以有多个connector,但只能有一个引擎 engine.service内部有两个connector,一个engine.因此一个service内部可以有多个connector. server:表示一个运行于JVM中的tomcat实例 Valve:阀门,拦截请求并在将其转至对应的webapp前进行某种处理操作,可以用于任何容器中,比如记录日志(access log valve),基于IP做访问控制(remote address filter valve). logger: 日志记录器,用于记录组件内部的状态信息,可以用于除context外的任何容器中. realm:可以用于任意容器类的组件中,关联一个用户认证库,实现认证和授权.可以关联的认证库有两 种:UserDatabaseRealm,MemoryRealm和JDBCRealm UserDatabaseRealm:使用JNDI自定义的用户认证库. MemoryRealm:认证信息定义在tomcat-users.xml中 JDBCRealm:认证信息定义在数据库中,并通过JDBC连接至数据库查找认证用户.
一台服务器可以有多个host站点,server.xml里增加这些就可以
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
继续阅读

我的微信
这是我的微信扫一扫
评论