Tomcat的安装部署与虚拟主机
一、安装环境
服务器:192.168.245.140(CentOS 7.6图形化安装)
二、安装部署
- jdk-8u201-linux-x64.rpm
- apache-tomcat-9.0.16.tar.gz
1、安装jdk
第一步:查看当前系统的java版本号
[root@server opt]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
第二步:rpm安装jdk软件包
[root@server opt]# rpm -ivh jdk-8u201-linux-x64.rpm
警告:jdk-8u201-linux-x64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:jdk1.8-2000:1.8.0_201-fcs ################################# [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
第三步:再次查看java版本信息发现没有变化,原因是因为虽然我们安装了jdk但是默认系统还是使用原来的版本,如果我们要让系统用我们自己安装的jdk版本需要添加系统环境变量
[root@server opt]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
第四步:添加系统环境变量,在/etc/profile文件末尾写入以下三行内容
[root@server opt]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
第五步:source使环境变量立即生效,再次查看java版本变成了我们自己安装的版本
[root@server opt]# source /etc/profile
[root@server opt]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
注意:如果是最小化安装的CentOS系统,之前没有装过java的,直接安装即可,不需要添加系统环境变量了
2、安装tomcat
解压tomcat到/usr/local/下,然后改一个短的名字,直接叫tomcat,优化启动和关闭服务的命令,让系统直接识别不需要写绝对路径
[root@server opt]# tar xvzf apache-tomcat-9.0.16.tar.gz -C /usr/local/
[root@server opt]# cd /usr/local/
[root@server local]# mv apache-tomcat-9.0.16/ tomcat
[root@server local]# cd tomcat/
[root@server tomcat]# cd bin
[root@server bin]# ls
bootstrap.jar configtest.sh shutdown.sh
catalina.bat daemon.sh startup.bat
catalina.sh digest.bat startup.sh
catalina-tasks.xml digest.sh tomcat-juli.jar
ciphers.bat makebase.bat tomcat-native.tar.gz
ciphers.sh makebase.sh tool-wrapper.bat
commons-daemon.jar setclasspath.bat tool-wrapper.sh
commons-daemon-native.tar.gz setclasspath.sh version.bat
configtest.bat shutdown.bat version.sh
[root@server bin]# ln -s /usr/local/tomcat/bin/startup.sh /usr/bin
[root@server bin]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin
3、启动tomcat
- 启动脚本:startup.sh
- 停止脚本:shutdown.sh
- 默认端口:8080
[root@server 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/java/jdk1.8.0_201-amd64
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@server bin]# netstat -anpt | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 60390/java
客户机访问192.168.245.140:8080默认主页
[root@server 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/java/jdk1.8.0_201-amd64
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
4、优化启动时间
在JVM 环境中将随机数产生文件从/dev/random修改为/dev/urandom
[root@server bin]# vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security
securerandom.source=file:/dev/urandom <---搜到这一行,random前面加u
三、虚拟主机
配置虚拟主机之前,因为是基于不同域名的虚拟主机,所以需要安装和配置DNS服务,使两个不同域名可以解析到同一个ip地址,即tomcat服务器地址,这里省略配置DNS服务
1、基于不同域名的虚拟主机
修改tomcat的主配置文件server.xml
[root@server ~]# vim /usr/local/tomcat/conf/server.xml
<Host name="www.yjs.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/yjs" path="" reloadable="true"/>
</Host>
<Host name="www.cloud.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/cloud" path="" reloadable="true"/>
</Host>
Host name:域名
appBase:应用程序的目录
unpackWARs:是否将代表Web应用的WAR文件解压;如果为true,通过解压后的文件结构运行该Web应用,如果为false,直接使用WAR文件运行Web应用。
autoDeploy:自动部署
xmlValidation:xml验证
xmlNamespaceAware:和web.xml的解析方式有关。默认为true,设置为false可以提升性能
Context docBase:指定了该Web应用使用的WAR包路径,或应用目录
path:指定了访问该Web应用的上下文路径,path属性为””,那么这个Context是虚拟主机的默认Web应用
reloadable:指示tomcat是否在运行时监控在WEB-INF/classes和WEB-INF/lib目录下class文件的改动。如果值为true,那么当class文件改动时,会触发Web应用的重新加载
为2个域名编写2个不同的主页内容
[root@server ~]# cd /usr/local/tomcat/webapps/
[root@server webapps]# ls
docs examples host-manager manager ROOT
[root@server webapps]# mkdir yjs cloud
[root@server webapps]# cd yjs
[root@server yjs]# echo "<h1>this is yjs web</h1>" > index.jsp
[root@server yjs]# cd ../cloud
[root@server cloud]#
[root@server cloud]#
[root@server cloud]# echo "<h1>this is cloud web</h1>" > index.jsp
客户机(192.168.245.10)的DNS服务器需要设置为tomcat服务器的地址,否则无法解析域名
客户机访问不同域名的8080端口,访问到了不同网页内容