(5)Tomcat的目录
目录 | 作用 |
bin | 存放着启动和关闭tomcat的脚本 |
conf | 存放着不同的配置文件,server.xml是主配置文件 |
doc | 存放tomcat文档 |
lib/japser/common | 存放tomcat运行所需要的库文件 |
logs | 存放tomcat运行时产生的日志文件 |
src | 存放tomcat的源代码 |
webapps | tomcat默认的网页存放路径 |
work | 存放jsp编译后产生的class文件 |
bin下的配置文件:
server.xml:Tomcat的主配置文件,包含Service、Connector、Engine、Redin、Valve、Hosts等组件的相关配置信息
web.xml:遵循Servlet规范标准的配置文,用于配置servlet,并为所有的web应用程序提供包括MIME等默认配置信息
(6)Tomcat常见日志
日志存放路径:/usr/local/tomcat/logs/
日志 | 作用 |
localhost.log | 程序异常没有被捕获的时候抛出的地方,记录Tomcat异常状态**(常用)** |
catalina.out | 程序的输出、Tomcat的日志输出,记录所有类型的日志**(常用)** |
localhost_access_log.txt | Tomcat访问成功日志**(常用)** |
manager.log | 记录Tomcat根目录下webapps/manager项目所产生的日志 |
host-manager.log | 记录Tomcat根目录下webapps/host-manager项目所产生的日志 |
三、部署Tomcat
(1)实验环境
系统 | ip地址 | 主机名 | Tomcat版本 | JDK版本 |
CentOS7.4 | 192.168.100.202 | rzy | apache-tomcat-8.5.16.tar.gz | jdk-8u91-linux-x64.tar.gz |
(2)实验目的
使客户端可以成功访问Tomcat
(3)实验步骤
******(1)先做基础配置 [root@Centos7 ~]# hostnamectl set-hostname rzy [root@Centos7 ~]# su [root@rzy ~]# systemctl stop firewalld [root@rzy ~]# setenforce 0 setenforce: SELinux is disabled [root@rzy ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 mount: /dev/sr0 已经挂载或 /mnt 忙 /dev/sr0 已经挂载到 /mnt 上 ******(2)上传Tomcat和JDK的压缩包,先安装JDK环境 [root@rzy ~]# ll 总用量 182152 -rw-------. 1 root root 1264 1月 12 18:27 anaconda-ks.cfg -rw-r--r-- 1 root root 5147367 5月 7 17:49 apache-tomcat-8.5.16.tar.gz -rw-r--r-- 1 root root 181367942 5月 7 17:49 jdk-8u91-linux-x64.tar.gz [root@rzy ~]# rpm -qa | grep java #先查看本机是否有java [root@rzy ~]# tar xf jdk-8u91-linux-x64.tar.gz #解压JDK包 [root@rzy ~]# mv jdk1.8.0_91/ /usr/local/java #移动解压后目录 [root@rzy ~]# ls /usr/local/java/ #确认是否移动成功 bin db javafx-src.zip lib man release THIRDPARTYLICENSEREADME-JAVAFX.txt COPYRIGHT include jre LICENSE README.html src.zip THIRDPARTYLICENSEREADME.txt [root@rzy ~]# cat <<a>> /etc/profile #往profile配置文件中修改全局变量PATH,增加JDK也就是java的根目录和bin命令目录 > export PATH=$PATH:/usr/local/java/bin:/usr/local/java > a [root@rzy ~]# source /etc/profile #执行脚本,使刚才操作生效 [root@rzy ~]# echo $PATH #查看是否成功添加路径(优化执行路径) /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin:/usr/local/java [root@rzy ~]# java -version #查看java版本,可以成功查看说明已经成功添加java环境 java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode) ******(3)安装完JDK后安装Tomcat [root@rzy ~]# tar xf apache-tomcat-8.5.16.tar.gz [root@rzy ~]# mv apache-tomcat-8.5.16 /usr/local/tomcat [root@rzy ~]# ls /usr/local/tomcat/ bin conf lib LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt temp webapps work [root@rzy ~]# /usr/local/tomcat/bin/startup.sh #启动tomcat Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@rzy ~]# netstat -anpt | grep java #查看端口,发现三个监听端口,这个就是三个连接器 tcp6 0 0 :::8080 :::* LISTEN 1227/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1227/java tcp6 0 0 :::8009 :::* LISTEN 1227/java
测试:(访问服务器的8080端口)
(4)扩展—安装mariadb数据库配置Tomcat的manager管理界面
******(1)继续上面的步骤 [root@rzy ~]# yum -y install mariadb-server mysql #使用yum安装 。。。。。。 完毕! [root@rzy ~]# systemctl enable mariadb Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. [root@rzy ~]# systemctl start mariadb [root@rzy ~]# mysqladmin -u root -p password Enter password: New password: Confirm new password: [root@rzy ~]# mysql -u root -p123123 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 5.5.56-MariaDB MariaDB Server Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.00 sec) MariaDB [(none)]> exit Bye ******(2)配置Tomcat的manager管理界面 [root@rzy ~]# vim /usr/local/tomcat/conf/tomcat-users.xml #末尾添加,要记得在</tomcat-users>项中添加,不然不会生效 。。。。。。 44 <role rolename="manager-gui"/> #添加管理页面的用户认证 45 <user username="tomcat" password="tomcat" roles="manager-gui"/> #添加用户名和密码 46 </tomcat-users> 。。。。。。 保存退出 [root@rzy ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml 。。。。。。 17 --> 18 <Context antiResourceLocking="false" privileged="true" > 19 <Valve className="org.apache.catalina.valves.RemoteAddrValve" 20 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" /> #添加所有网段都可用 21 <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionF ilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> 22 </Context> 。。。。。。 完毕!
先进行访问:
现在重启tomcat
再次进行访问:
成功查看状态
(5)自定义页面
[root@rzy webapps]# mkdir -p /web/webapp/ [root@rzy webapps]# vim /web/webapp/index.jsp <html> <head> <title>JSP TEST PAGE1 </title> </head> <body> <% out.println("aaaaaaaaaaaaaaaa");%> </body> </html> [root@rzy webapps]# vim /usr/local/tomcat/conf/server.xml #修改主配置文件,这里直接使用localhost,没有修改域名 。。。。。。#这里删除了注释所以是33行,不删除注释是150行 33 unpackWARs="true" autoDeploy="true"> 34 <Context docBase="/web/webapp" path="" reloadable="false"></Context> #修改网页存放路径 35 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 36 。。。。。。 保存退出
测试,验证
(6)配置Tomcat虚拟主机
******(1)继续上面的操作,先创建虚拟主机的目录 [root@rzy ~]# mkdir -p /web2/webapp/ [root@rzy ~]# cp /web/webapp/index.jsp /web2/webapp/index.jsp [root@rzy ~]# sed -i 's/a/b/g' /web2/webapp/index.jsp [root@rzy ~]# cat /web2/webapp/index.jsp <html> <hebd> <title>JSP TEST PAGE1 </title> </hebd> <body> <% out.println("bbbbbbbbbbbbbbbb");%> </body> </html> ******(2)修改配置文件 [root@rzy ~]# vim /usr/local/tomcat/conf/server.xml #以<!-- 开头 -->结尾的都是注释,可以自行删除 。。。。。。 #复制Host区域,一个Host就是一个虚拟主机,域名不同然后把两个虚拟主机的网页存放路径指向不同的路径即可 32 <Host name="www.aaa.com" appBase="webapps" 33 unpackWARs="true" autoDeploy="true"> #设置自动识别war包,开启自动部署 34 <Context docBase="/web/webapp" path="" reloadable="false"></Context> #设置网页存放路径,tomcat把web应用程序映射为root URL路径,reloadable选项建议为false 35 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 36 prefix="localhost_access_log" suffix=".txt" 37 pattern="%h %l %u %t "%r" %s %b" /> 38 39 </Host> 40 <Host name="www.bbb.com" appBase="webapps" 41 unpackWARs="true" autoDeploy="true"> 42 <Context docBase="/web2/webapp" path="" reloadable="false"></Context> 43 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 44 prefix="localhost_access_log" suffix=".txt" 45 pattern="%h %l %u %t "%r" %s %b" /> 46 47 </Host> 。。。。。。 #保存退出 [root@rzy ~]# /usr/local/tomcat/bin/shutdown.sh #重启tomcat Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@rzy ~]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started.
测试,修改hosts文件
访问不同的域名,要记得加端口号,发现出现两个不同的网页
(7)同一主机做两个实例的方法
- 在主配置文件中,直接把所有的Service区域复制一下,修改两个连接器的端口号不冲突即可
[root@rzy ~]# vim /usr/local/tomcat/conf/server.xml 。。。。。。 17 <Service name="Catalina"> 18 <Connector port="8080" protocol="HTTP/1.1" #端口号不能相同,域名和网页存放路径也不能相同 19 connectionTimeout="20000" 20 redirectPort="8443" /> 21 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> #8080和8009的端口 22 <Engine name="Catalina" defaultHost="localhost"> 23 <Realm className="org.apache.catalina.realm.LockOutRealm"> 24 <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 25 resourceName="UserDatabase"/> 26 </Realm> 27 <Host name="www.aaa.com" appBase="webapps" 28 unpackWARs="true" autoDeploy="true"> 29 <Context docBase="/web/webapp" path="" reloadable="false"></Context> 30 </Host> 31 </Engine> 32 </Service> 33 <Service name="Catalina"> 34 <Connector port="8081" protocol="HTTP/1.1" #改成8081和8010 35 connectionTimeout="20000" 36 redirectPort="8443" /> 37 <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" /> 38 <Engine name="Catalina" defaultHost="localhost"> 39 <Realm className="org.apache.catalina.realm.LockOutRealm"> 40 <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 41 resourceName="UserDatabase"/> 42 </Realm> 43 <Host name="www.bbb.com" appBase="webapps" 44 unpackWARs="true" autoDeploy="true"> 45 <Context docBase="/web2/webapp" path="" reloadable="false"></Context> 46 </Host> 47 </Engine> 48 </Service> 49 </Server> #保存退出 [root@rzy ~]# /usr/local/tomcat/bin/shutdown.sh #重新启动 Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@rzy ~]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@rzy ~]# netstat -anpt | grep java #查看端口,发现有五个端口,一个8005是关闭tomcat的端口,另外四个就是两个实例的连接器的端口 tcp6 0 0 :::8080 :::* LISTEN 17004/java tcp6 0 0 :::8081 :::* LISTEN 17004/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 17004/java tcp6 0 0 :::8009 :::* LISTEN 17004/java tcp6 0 0 :::8010 :::* LISTEN 17004/java
测试 (端口要注意修改)创建实例成功
第二种方法简单粗暴,直接装两台tomcat,路径不一样,修改端口和域名即可(略)
(8)Tomcat主机名(域名)
Tomcat在给虚拟主机配置域名之后,客户端只能访问域名,访问ip也是无法访问,这样可以防止恶意域名绑定,有的人会把自己的ip绑到某个服务器的域名,配置之后使用ip访问是无法正常访问的