Tomcat是什么?
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP(java server page) 程序的首选。Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。
基本搭建:
由于tomcat是提供jsp页面服务的,所有我们要安装jdk(java development kit)程序包,及java开发环境
官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载最新版:jdk-8u65-linux-x64.rpm #实际环境以稳定为主,多采用1.6.和1.7版本
这里我们下载的rpm包格式,所以直接安装即可:
[root@localhost ~]# rpm -ivhjdk-8u65-linux-x64.rpm Preparing... ########################################### [100%] packagejdk1.8.0_65-2000:1.8.0_65-fcs.x86_64 is already installed #这里提示已经安装
安装完毕后,我们需要把java程序加入系统环境变量,方便以后使用:
[root@localhost jdk1.8.0_65]# vim/etc/profile.d/java.sh
加入以下两行:
export JAVA_HOME=/usr/java/latest export PATH=$JAVA_HOME/bin:$PATH [root@localhost jdk1.8.0_65]# source/etc/profile.d/java.sh #重新读取文件 [root@localhost jdk1.8.0_65]# java #直接键入java可以查看java帮助信息 [root@localhost jdk1.8.0_65]# java �Cversion #查看java版本信息 java version "1.8.0_65" Java(TM) SE Runtime Environment (build1.8.0_65-b17) Java HotSpot(TM) 64-Bit Server VM (build25.65-b01, mixed mode)
能看到版本信息,说明java环境安装完成
安装tomcat
官网:
http://tomcat.apache.org/download-70.cgi 下载tar.gz格式包到root目录
[root@localhost ~]# tar xfapache-tomcat-7.0.65.tar.gz -C /usr/local/ #解压到/usr/local
[root@localhost ~]# cd/usr/local/
[root@localhost local]# ln-s apache-tomcat-7.0.65/ tomcat #软链接至tomcat
[root@localhost local]# cdtomcat/
[root@localhost tomcat]#ls
bin conf lib LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt temp webapps work
接下来启动服务:
启动tomcat服务也需要加入环境变量:
[root@localhost tomcat]#vim /etc/profile.d/tomcat.sh 内容如下
exportCATALINA_HOME=/usr/local/tomcat
exportPATH=$CATALINA_HOME/bin:$PATH #CATALINA_HOME 为tomcat别名
[root@localhost tomcat]#source /etc/profile.d/tomcat.sh #重新读取脚本使其生效
[root@localhost tomcat]#ls bin/
bootstrap.jar configtest.bat setclasspath.sh tomcat-native.tar.gz
catalina.bat configtest.sh shutdown.bat tool-wrapper.bat
catalina.sh daemon.sh shutdown.sh tool-wrapper.sh
catalina-tasks.xml digest.bat startup.bat version.bat
commons-daemon.jar digest.sh startup.sh version.sh
commons-daemon-native.tar.gz setclasspath.bat tomcat-juli.jar
#默认定义了一些脚本,直接可以使用,
例如:
[root@localhost tomcat]#catalina.sh version #查看版本信息
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR:/usr/local/tomcat/temp
Using JRE_HOME: /usr/java/latest
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: ApacheTomcat/7.0.65
Server built: Oct 9 2015 08:36:58 UTC
Server number: 7.0.65.0
OS Name: Linux
OS Version: 2.6.32-504.el6.x86_64
Architecture: amd64
JVM Version: 1.8.0_65-b17
JVM Vendor: Oracle Corporation
[root@localhost tomcat]#catalina.sh �Chelp #查看使用帮助信息
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR:/usr/local/tomcat/temp
Using JRE_HOME: /usr/java/latest
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Usage: catalina.sh (commands ... )
commands:
debug Start Catalina in a debugger
debug -security Debug Catalina with a security manager
jpda start Start Catalina under JPDA debugger
run Start Catalina in the currentwindow
run -security Start in the current window with securitymanager
start Start Catalina in a separatewindow
start -security Start in a separate window with securitymanager
stop Stop Catalina, waiting up to 5seconds for the process to end
stop n Stop Catalina, waiting up to nseconds for the process to end
stop -force Stop Catalina, wait up to 5 seconds andthen use kill -KILL if still running
stop n -force Stop Catalina, wait up to n seconds andthen use kill -KILL if still running
configtest Run a basic syntax check on server.xml- check exit code for result
version What version of tomcat are yourunning?
Note: Waiting for theprocess to end and use of the -force option require that $CATALINA_PID isdefined
[root@localhost tomcat]# catalina.shstart #启动tomcat
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR:/usr/local/tomcat/temp
Using JRE_HOME: /usr/java/latest
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started. #提示已经启动
[root@localhost tomcat]# ss �Ctnlp #已监听8080端口,而且为java,而不是tomcat
LISTEN 0 100 :::8080
Users:((“java“,5203,46))
到本地浏览器输入:
http://192.168.0.107:8080/ #ip+port 可以看到以下页面:
Tomcat的目录结构
[root@localhosttomcat]# ls
bin conf lib LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt temp webapps work
bin: 脚本及启动时用到的类
conf: 配置文件
lib: 类库
logs:日志文件
temp:临时文件目录
webapps:应用程序默认部署目录
work:工作目录
tomcat配置文件:
[root@localhost tomcat]#ls conf/
catalina.properties logging.properties tomcat-users.xml
catalina.policy context.xml server.xml web.xml
catalina.properties #java属性的定义文件,设定类加载器路径等,以及一些JVM性能相关的调优参数
logging.properties #tomcat日志配置文件
tomcat-users.xml: tomcat #用户认证的账号和密码配置文件
catalina.policy # 当使用-security选项启动tomcat实例时会读取此配置文件,以实现其安全运行策略
context.xml #每个webapp都可以有专用的配置文件,这些配置文件通常位于webapp应用程序目录下的WEB-INF目录中,用于定义会话管理器,JDBC等,conf/context.xml是为个webapp提供默认配置
server.xml #用于定义tomcat体系结构,端口,集群,web应用,访问日志等功能
web.xml #每个为webapp”部署“之后才能被访问,此文件则用于为所有的webapp提供默认部署的相关配置
了解了各目录和配置文件后,手动添加一个应用程序来测试一下:
创建webapp特有的目录结构
提供webapp各文件
创建jsp默认主页
[root@localhost webapps]# pwd /usr/local/tomcat/webapps [root@localhost webapps]# mkdir -pv myapp/{lib,classes,WEB-INF,META-INF}#创建文件 mkdir: created directory `myapp'#存放webapp的主页文件 mkdir: created directory `myapp/lib'#此webapp私有类,被打包为jar格式类 mkdir: created directory `myapp/classes'#此webapp的私有类 mkdir: created directory `myapp/WEB-INF'#当前webapp私有资源目录,存放web.xml mkdir: created directory`myapp/META-INF'#同上,但是存放自用的context.xml [root@localhost webapps]# vimmyapp/index.jsp #编辑jsp主页文件内容: <%@ page language="java"%> <%@ pageimport="java.util.*" %> <html> <head> <title>JSP TestPage</title> </head> <body> <% out.println("Hello,world"); %> </body> </html>~
部署完成后,默认catalina引擎会自动部署,不需要手动重启,直接在浏览器输入测试:
可以看到hello,word, 这样一个简单的jsp网页就完成了
回到tomcat主页后你会看到主页右侧有三个管理按钮,刚搭建完需要进行配置才可以使用:
Server status 服务状态信息查看
Manager App webapp管理工具
Host Manager 虚拟主机管理工具
鼠标单击会弹出授权页面需要输入用户名账号,这里直接点击取消就会跳入一个网页会有提示信息
这里提示我们如果设置用户名密码和一些设置用户权限的信息:
For example, to add the manager-gui roleto a user named tomcat with a password of s3cret, add thefollowing to the config file listed above.
<rolerolename="manager-gui"/>
<userusername="tomcat" password="s3cret"roles="manager-gui"/>
manager-gui - allows access to the HTML GUI and the status pages
manager-script - allows access to the text interface and the status pages
manager-jmx - allows access to the JMX proxy and the status pages
manager-status - allows access to the status pages only
由此看到,要想使用这几个工具,需要做以下设置:
[root@localhost ~]# cd/usr/local/tomcat/conf/ [root@localhost conf]# ls Catalina catalina.properties logging.properties tomcat-users.xml catalina.policy context.xml server.xml web.xml [root@localhost conf]# vim tomcat-users.xml#编辑用户配置文件
此配置文件修改完成后默认不会立即生效,需要重启服务读取文件:
注:由于默认没有restart命令支持,所以只能先stop后,再start
[root@localhost conf]# catalina.sh stop #停止服务 Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/latest Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@localhost conf]# catalina.sh start #启动服务 Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR:/usr/local/tomcat/temp Using JRE_HOME: /usr/java/latest Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. #提示启动成功
[root@localhost conf]# ss �Ctnl ##8080端口已经监听 LISTEN 0 100 :::8080 :::*
现在我们重新浏览器访问测试:
输入自己设置的用户名密码点击登陆即可进入管理界面:如下
可以看到显示出了完整的服务状态信息:
其中JVM里显示了内存信息:
Memory Pool 内存池
Eden Space 新生代
Survivor Space 存活区
Tenured Gen 年老代
Code Cache 代码缓存
Compressed Class Space 压缩类空间
Metaspace源数据空间
通常只需要前三个,后三个为非堆内存
点击Manager App 我们会看到各应用程序的管理页面:
Applications: 一下应用程序可以直接点击访问:
/ : 根目录,默认主页
/docs: tomcat 7自带的说明文档,可以了解各种使用语法
/examples:使用示例包括 Servlets ,JSP,WebSocket
/host-mansger: 主机管理
/manager : 当前页
/myapp : 自行部署的jsp
Commands
Start stop reload undeploy(解除部署)
除了这些应用链接,还可以通过Commands命令栏来控制,例如:
关闭自行部署的jsp及/myapp行commands命令选择stop,就可以看到running列显示为false了,接下来访问就会出错
重新点击start后,恢复正常:
往下可以设置热部署:
Context Path (required): 部署文件,如/myapp
XML Configuration file URL: XML配置文件路径,如 web.xml
WAR or Directory URL : WAR文件路径,可选择下方的选择文件直接指定
然后点击 Deploy即可进行热部署
Diagnostics 对web application做诊断
Find leaks: 查询泄漏
SSL: 加密授权
Server Information 服务信息
选择第三项host manager,管理虚拟主机:
同样需要用户名密码,但是填入后发现提示错误,因为它是不同的应用程序,和前两项使用不同的策略,所以需要另行定义(同样看提示):
由此看来和前边的操作没有多大区别:
[root@localhost conf]# vim tomcat-users.xml #编辑配置文件:
这里我们新加了管理员admin-gui,并且在用户名密码的基础上新添加了admin-gui, 意思为
Admin-gui 和 manager-gui使用同一个用户名和密码,实际情况自行定义。
[root@localhost conf]# catalina.sh stop #同样的操作 [root@localhost conf]# catalina.sh start
浏览器测试:
这样就可以根据自己的情况添加虚拟主机了,具体功能很简单就不细说了。。。