Tomcat部署及创建虚拟主机
一、Tomca简介
1.1tomcat定义
目前比较流行的web应用服务器
免费的,开放源代码,跨平台的web应用服务器
属于Apache软件基金会jakarta项目中的一个核心项目
深受java爱好者的喜爱,并得到部分软件开发商的认可
1.2tomcat的核心组件
web容器,servlet容器,JSP容器
1.3tomcat流程图
二、部署Tomcat
2.1安装JDK
[root@localhost ~]# tar zxf jdk-8u91-linux-x64.tar.gz
[root@localhost ~]# mv jdk1.8.0_91/ /usr/local/java
[root@localhost ~]# cd /etc/profile.d/
[root@localhost profile.d]# vim java.sh
export JAVA_HOME=/usr/local/java ###设置java根目录
export PATH=$PATH:$JAVA_HOME/bin ###在PATH环境变量中添加JAVA根目录下的bin子目录
[root@localhost profile.d]# source java.sh ###java.sh脚本导入到环境变量中,使其生效
[root@localhost ~]# java -version ###查看版本
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
2.2安装并运行Tomcat
[root@localhost ~]# tar zxf apache-tomcat-8.5.16.tar.gz
[root@localhost ~]# mv apache-tomcat-8.5.16 /usr/local/tomcat8
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh ###启动tomcat
Using CATALINA_BASE: /usr/local/tomcat8
Using CATALINA_HOME: /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.
[root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh ###关闭tomcat
Using CATALINA_BASE: /usr/local/tomcat8
Using CATALINA_HOME: /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
[root@localhost ~]# ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup ##优化执行路径
[root@localhost ~]# ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown
[root@localhost ~]# tomcatup
Using CATALINA_BASE: /usr/local/tomcat8
Using CATALINA_HOME: /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.
[root@localhost ~]# netstat -anpt | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 48759/java
三、创建虚拟主机
3.1基于域名
使用场景:
有时候公司会有多个项目需要运行,那么肯定不可能是一台服务器上运行多个Tomcat服务,这样会消耗太多的系统资源。此时,就需要使用到Tomcat虚拟主机
1、创建主页并修改主页内容
[root@localhost ~]# mkdir -p /web/webapp1/{test1,test2}
[root@localhost ~]# vi /web/webapp1/test1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("Welcome to test site,http://www.test1.com");%>
<div>动态页面</div><br/><img src="a.jpg">
</body>
</html>
[root@localhost ~]# vi /web/webapp1/test2/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("Welcome to test site,http://www.test2.com");%>
<div>动态页面</div><br/><img src="b.jpg">
</body>
</html>
2、修改Tomcat主配置文件
[root@localhost ~]# vi /usr/local/tomcat8/conf/server.xml
<Host name="www.test1.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1/test1" path="" reloadable="false" />
</Host>
<Host name="www.test2.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1/test2" path="" reloadable="false" />
</Host>
[root@localhost ~]# shutdown.sh
[root@localhost ~]# startup.sh
[root@localhost ~]# netstat -anpt | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 49329/java
[root@locahost ~]# vi /etc/hosts
20.0.0.13 www.test1.com www.test2.com
最后在浏览器测试www.test1.com:8080 www.test2.com:8080
3.2基于端口创建虚拟机
[root@localhost ~]# vi /usr/local/tomcat8/conf/server.xml
</Service>
<Service name="Catalina">
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
<Host name="www.test2.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1/test2" path="" reloadable="false" />
</Host>
</Engine>
</Service>
</Server>
[root@localhost ~]# shutdown.sh
[root@localhost ~]# startup.sh
[root@localhost ~]# netstat -anpt | grep 8080 ###查看8080端口是否开启
tcp6 0 0 :::8080 :::* LISTEN 51036/java
[root@localhost ~]# netstat -anpt | grep 8081 ###查看8081端口是否开启
tcp6 0 0 :::8081 :::* LISTEN 51036/java
最后事输入www.test2.com:8081测试