文章目录
tomcat
一,应用
web应用,web容器,Java中间件
二.安装
1.需要运行环境(tomcat本身也是一个java程序)
yum -y install java-1.8.0-openjdk
这个软件可以提供JDK:java可执行的文件、jre(jave的运行环境)、java类库
2.安装tomcat(免编译安装)
tar -axf apache-tomcat-9.0.45.tar.gz -C /usr/local/
cd /usr/local/
mv apache-tomcat-9.0.45/ tomcat
3.设置环境变量
vim /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat #所有实例共享的主目录
export CATALINA_BASE=$CATALINA_HOME #每个实例独有的主目录
export PATH=$PATH:$CATALINA_HOME/bin
source /etc/profile #刷新
4.启动服务
startup.sh #启动服务
netstat -tunlp # 默认是tcp8080端口
firewall-cmd --add-port=8080/tcp
三.配置文件
1.配置文件
需要了解的几个配置文件:server.xml web.xml tomcat-users.xml
web.xml #可以修改及定义首页文件
tomcat-users.xml # 定义角色及相应访问权限的用户
server.xml #核心的配置文件
这个文件中有多层标签,需要记忆的:
<server> #顶级标签,一个实例
<service> #服务标签,把连接器与引擎进行整合 类似基本不同端口或ip的虚拟主机
<Connector> #侦听用户请求(侦听的端口)
<Engine> #处理请求
<Host> #主机标签,基于不同域名的虚拟主机
2.特点
1.一个server里面可以包含一个或多个service
2.一个service里面可以有多个Connector(连接器),但是只能有一个engine
3.engine在一个server里面名称唯一,一个engine里面又包含多个host
4.同一个engine里,host名称(虚拟主机名称)必须唯一
3.配置文件结构
4.tomcat默认主目录
工程包(开发人员写好代码的压缩包): C A T A L I N A B A S E / w e b a p p s h t m l 静 态 网 页 : CATALINA_BASE/webapps html静态网页: CATALINABASE/webappshtml静态网页:CATALINA_BASE/webapps/ROOT
5.虚拟主机
1.基于相同ip,不同端口号 (创建多个service标签)
- 自定义网站根目录
mkdir /www01 /www02
cp -rf /usr/local/tomcat/webapps /www01 #复制默认的web文件
cp -rf /usr/local/tomcat/webapps /www02
- 自定义首页文件
echo this is yjs > /www01/webapps/ROOT/index.html
echo this is test > /www02/webapps/ROOT/index.html
- 复制 之间的内容需要改动的地方:
1)service、engins的名称不能相同
2)所有的端口号不能相同
3)自定义各自的网站主目录
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<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>
<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>
</Engine>
</Service>
</Server>
2.基于相同端口,不同ip ( 创建多个service标签)
与方式一类似,连接器中除了指定端口,还需要指定ip
address=“ip”
3.相同端口相同ip,不同主机头值 (创建多个host标签)
不需要添加service,只需要创建多个host标签
<Host name="www.yjs.com" appBase="/www01/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>
<Host name="www.test.com" appBase="/www02/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>