一、 Tomcat介绍
二、 安装jdk
三、 安装Tomcat
四、 配置Tomcat监听80端口
五、 配置Tomcat虚拟主机
六、 Tomcat日志
七、扩展
Tomcat 是什么
Tomcat 是由 Apache软件基金会开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。
由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。但是,不能将 Tomcat 和 Apache HTTP 服务器混淆,Apache HTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两个 HTTP web server 不是捆绑在一起的。Tomcat 包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。
tomcat是一个中间件,真正起作用解析java脚本的是jdk。jdk(java development kit)是整个java的核心,它包含了java运行环境和一堆java相关的工具以及java基础库。
最主流的jdk为sun公司发布的jdk,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装openjdk
java程序写的网站用tomcat+jdk来运行
jdk版本1.6,1.7,1.8,简称6/7/8.
1. 从Orcale官网下载jdk到windows下,然后再使用 rz 或者FPT等工具上传到Linux服务器上(下载版本8)
官网下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2. 解压jdk包
[root@Linux01 src]# tar zxvf jdk-8u191-linux-x64.tar.gz
3. 移动jdk包到/usr/local/下,改名为jdk1.8
[root@Linux01 src]# mv jdk1.8.0_191 /usr/local/jdk1.8
4. 配置JDK环境变量
[root@Linux01 src]# vim /etc/profile //编辑 /etc/profile 文件,在最后加入
JAVA_HOME=/usr/local/jdk1.8/
JAVA_BIN=$JAVA_HOME/bin
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/jre/lib/charsets.jar
[root@Linux01 src]# source /etc/profile //使配置生效
5. 测试jdk环境是否生效
[root@Linux01 src]# java -version //使用java -version命令查看jdk版本,验证jdk是否安装成功
1.下载tomcat(二进制包)
[root@Linux01 src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
2. 解压包、移动到/usr/local目录下并重命名
[root@Linux01 src]# tar zxvf apache-tomcat-9.0.14.tar.gz
[root@Linux01 src]# mv ./apache-tomcat-9.0.14 /usr/local/tomcat
3. 启动tomcat
[root@Linux01 src]# /usr/local/tomcat/bin/startup.sh
注:执行startup.sh即可启动Tomcat服务 ;执行shutdown.sh 就能关闭Tomcat服务。 注意,tomcat没有restart参数,重启Tomcat只能先关闭再启动这样操作。
关于 /usr/local/tomcat/bin 目录下的sh脚本:
tomcat的脚本在bin目录下,有:catalina、startup、shutdown、setenv、digest、version等。
其中catalina脚本用于启动和关闭tomcat服务器,是tomcat中最关键的脚本。
startup脚本和shutdown脚本等都是使用了不同的参数调用了catalina脚本:
最常用的两个:
startup脚本以start参数调用了catalina脚本,用于启动Tomcat
shutdown脚本以stop参数调用了catalina脚本。用户关闭Tomcat
[root@Linux01 src]# ll /usr/local/tomcat/bin/*.sh
4. 查看进程和监听端口
[root@Linux01 src]# ps aux|grep tomcat
或[root@Linux01 src]# ps aux|grep java
[root@Linux01 src]# netstat -lntp |grep java
三个端口:8080为提供web服务的端口;8005为管理端口;8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到 。只有当三个端口全部处于监听状态时,才能正常的请求访问tomcat服务器 。三个端口都可以自定义。
5. 测试访问
测试访问前需要在防火墙将三个端口放行,或者关闭防火墙.
[root@Linux01 src]# systemctl stop firewalld //为了方便,直接关闭防火墙
[root@Linux01 src]# systemctl status firewalld //查看防火墙状态
①curl测试访问
②远程测试
测试成功,就表示Tomcat的初步安装以及完成了 。
Tomcat默认侦听的是8080端口,不是很方便。可以通过修改配置文件的方式将默认侦听的端口改为80。
1. 先查看80端口是否被占用
[root@Linux01 src]# netstat -lntp | grep 80
这里显示80端口被nginx占用了 ,所以需要先关闭nginx
[root@Linux01 src]# /usr/local/nginx/sbin/nginx -s stop
2. 修改Tomcat配置文件:Tomcat主配置文件路径是 /usr/local/tomcat/conf/server.xml
[root@Linux01 src]# vim /usr/local/tomcat/conf/server.xml
修改如下字段 Connector port="8080"---->Connector port="80"
3. 重启Tomcat
[root@Linux01 src]# /usr/local/tomcat/bin/shutdown.sh
[root@Linux01 src]# /usr/local/tomcat/bin/startup.sh
4. 测试访问
①本地测试
②浏览器测试访问,注意地址栏没有加端口号,默认就是访问80端口
增加虚拟主机,以www.123.cn为例。
1. 编辑Tomcat主配置文件/usr/local/tomcat/conf/server.xml
[root@Linux01 src]# vim /usr/local/tomcat/conf/server.xml
在下面增加如下内容:
xmlValidation="false" xmlNamespaceAware="false">
Tomcat主配置文件/usr/local/tomcat/conf/server.xml中:
#
# name定义域名,
# appBase定义应用的目录,默认位置在/usr/local/tomcat/webapps
# Java的应用通常是一个war的压缩包,只需要将war的压缩包放到appBase目录下面即可。
# unpackWARs="true" 表示会自动解压war包,改为false就不会自动解压了
# autoDeploy="true" 表示会自动部署,
# docBase= 就是定义网站的根目录,相当于httpd的 DocumentRoot
2. 重启tomcat
[root@Linux01 src]# /usr/local/tomcat/bin/shutdown.sh
[root@Linux01 src]# /usr/local/tomcat/bin/startup.sh
3. 创建配置里定义的docBase目录和测试文件
[root@Linux01 src]# mkdir -p /data/wwwroot/www.123.cn
[root@Linux01 www.123.cn]# vim 1.html
4. 测试
①本地测试
[root@Linux01 123.cn]# curl -x127.0.0.1:80 www.123.cn/1.html -I
②浏览器测试
通过部署一个java的应用来体会appBase和docBase目录的作用
用WAR包部署Zrlog博客
1. 下载Zrlog的WAR包并移动到 /usr/local/tomcat/webapps/ 目录下
[root@Linux01 src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
[root@Linux01 src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@Linux01 src]# ls /usr/local/tomcat/webapps/
2. 因为配置文件中的unpackWARs参数会不停解压目录下的WAR包,我们如果对这个解压后的文件进行操作,会被后面再解压出来的文件覆盖,所以先把文件改名,再操作。(或者先改名,再删除war包)
[root@Linux01 src]# cd /usr/local/tomcat/webapps/
[root@Linux01 webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
3. 访问zrlog博客需要先安装,使用浏览器打开
显示安装向导---→就是配置数据库
4. 新建zrlog数据库、zrlog用户
[root@Linux01 webapps]# ps aux|grep mysql //检查mysql数据库是否开启
[root@Linux01 webapps]# mysql -uroot -p12345 //登录数据库
mysql> create database zrlog; //创建zrlog数据库
mysql> grant all on zrlog.* to 'zrlogadmin'@127.0.0.1 identified by '123456'; //创建zrlog用户
[root@Linux01 webapps]# mysql -uzrlogadmin -p123456 -h127.0.0.1 //测试创建的用户是否能登录数据库
mysql> show databases; //查看zrlogadmin用户登录的数据库里有哪些库
5. 然后再进入浏览器填入刚才创建的数据库的相应信息,再点击下一步
设置管理员账号密码,以及网站的基本信息
安装完成,点击查看
可以在管理里面,写一篇博客测试
6. appBase和docBase目录的区别:
appbase:放war包
docbase:放网站应用程序 //如果是绝对路径那跟appBase没有关系;如果是相对路径,则指的是相对appBase的一个目录;
如果不想利用默认的网站,可将应用程序放入相应定义的目录即可。.war包在appbase定义的目录下会自动解压。已经解压好的网站程序,也可以放到docbase定义的目录下。
[root@Linux01 webapps]# mkdir /data/wwwroot/123.cn //创建一个配置文件中定义的docbase目录
[root@Linux01 webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn //把tomcat下的应用程序文件移到docbase定义的docBase="/data/wwwroot/123.cn/"目录下
移动应用程序到docbase定义的目录之前
tomcat日志在/usr/local/tomcat/logs/下
其中catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。
其中catalina.2018-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志。
host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。
localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。
访问日志默认不会生成,需要在server.xml中配置一下。
1. 配置www.123.cn的访问日志
[root@Linux01 logs]# vim /usr/local/tomcat/conf/server.xml
在虚拟主机配置
prefix="123.cn_access" suffix=".log" pattern="%h %l %u %t "%r" %s %b" /> # prefix定义访问日志的前缀, 2. 访问测试 [root@Linux01 logs]# curl -x127.0.0.1:80 www.123.cn //访问 [root@Linux01 logs]# cat 123.cn_access.2018-12-27.log //查看访问日志 java容器比较 http://my.oschina.net/diedai/blog/271367 http://www.360doc.com/content/11/0618/21/16915_127901371.shtml j2ee、j2se、ejb、javabean、serverlet、jsp之间关系 http://bbs.csdn.net/topics/50015576 tomcat server.xml配置详解 http://blog.csdn.net/yuanxuegui2008/article/details/6056754 tomcat常用数据库连接的方法 http://wjw7702.blog.51cto.com/5210820/1109263 JAR、WAR包区别 http://blog.csdn.net/lishehe/article/details/41607725 3 jmx监控tomcat
# suffix定义日志的后缀,
# pattern定义日志格式。
# 新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,需要添加
# 错误日志会统一记录到catalina.out中。
# 关于Tomcat日志,最需要关注的就是catalina.out,当出现问题时,我们应该第一想到去查看它。七、扩展
tomcat常见配置汇总 http://blog.sina.com.cn/s/blog_4ab26bdd0100gwpk.html
resin安装 http://fangniuwa.blog.51cto.com/10209030/1763488/
1 tomcat 单机多实例
http://www.ttlsa.com/tomcat/config-multi-tomcat-instance/
2 tomcat的jvm设置和连接数设置
http://www.cnblogs.com/bluestorm/archive/2013/04/23/3037392.html
http://blog.csdn.net/l1028386804/article/details/51547408
4 jvm性能调优监控工具jps/jstack/jmap/jhat/jstat
http://blog.csdn.net/wisgood/article/details/25343845
http://guafei.iteye.com/blog/1815222
5 gvm gc 相关
http://www.cnblogs.com/Mandylover/p/5208055.html
http://blog.csdn.net/yohoph/article/details/42041729
tomcat内存溢出
https://blog.csdn.net/ye1992/article/details/9344807