第十五章 Tomcat配置

一、 Tomcat介绍
二、 安装jdk
三、 安装Tomcat
四、 配置Tomcat监听80端口
五、 配置Tomcat虚拟主机
六、 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

    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是否安装成功 

 

三、 安装Tomcat

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监听80端口

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

正常了,80端口空出来了:

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端口 

 

五、 配置Tomcat虚拟主机

增加虚拟主机,以www.123.cn为例。

1. 编辑Tomcat主配置文件/usr/local/tomcat/conf/server.xml

[root@Linux01 src]# vim /usr/local/tomcat/conf/server.xml
在</Host>下面增加如下内容:

<Host name="www.123.cn" appBase=""
            unpackWARs= "true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
    <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
      </Host>   

Tomcat主配置文件/usr/local/tomcat/conf/server.xml中:
# <Host>和</Host>之间的配置为虚拟主机配置部分,
# 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日志

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
在虚拟主机配置<Host> </Host>中添加以下内容:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

         prefix="123.cn_access" suffix=".log"

         pattern="%h %l %u %t &quot;%r&quot; %s %b" />

# prefix定义访问日志的前缀,
# suffix定义日志的后缀,
# pattern定义日志格式。
# 新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,需要添加
# 错误日志会统一记录到catalina.out中。
# 关于Tomcat日志,最需要关注的就是catalina.out,当出现问题时,我们应该第一想到去查看它。

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
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

3 jmx监控tomcat
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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值