第二十六课预习任务--tomcat

16.1 Tomcat介绍

Tomcat介绍:

  • Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
  • java程序写的网站用tomcat+jdk来运行。
  • tomcat是一个中间件,真正起作用的,解析java脚本的是jdk。
  • jdk(java development kit)是整个java的核心,它包含了java运行环境和一堆java相关的工具以及java基础库。
  • 最主流的jdk为sun公司(已被oracle收购)发布的jdk,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装openjdk(开源)。

 

16.2 安装jdk

安装tomcat之前先安装jdk,因为tomcat安装依赖jdk的一些环境。

jdk目前的版本有:1.6、1.7、1.8,简称:6、7、8

1、下载jdk1.8,在oracle官网下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

90ca24ed186b96d6697d9a4bcbf00dd06b9.jpg

下载到window中的安装包可以用xftp上传到Linux中。

2、安装jdk

解压安装包:tar zxvf jdk-8u191-linux-x64.tar.gz

重命名:mv jdk1.8.0_191 /usr/local/jdk1.8

在/etc/profile中添加环境变量内容为:

JAVA_HOME=/usr/local/jdk1.8/
JAVA_BIN=/usr/local/jdk1.8/bin
JRE_HOME=/usr/local/jdk1.8/jre
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin
CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar

用source /etc/profile 使添加内容生效。

2、测试jdk是否生效:

[root@liang-00 src]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
[root@liang-00 src]# 

如果版本信息和下载的安装包信息不一致,含有openjdk可以查看下之前是否已经安装了openjdk,如果安装了卸载就可以了,但是在线上的服务器绝对不可以卸载的。

[root@liang-00 src]# rpm -qa |grep openjdk
[root@liang-00 src]#

 

16.3 安装Tomcat

tomcat是一个中间件,真正起作用的解析java脚本的是jdk。tomcat是一个webserver,它解析java时要用到jdk。

1、下载tomcat二进制源码包。

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz

2、安装tomcat。

解压包、重命名

tar zxvf apache-tomcat-8.5.35.tar.gz 

mv apache-tomcat-8.5.35 /usr/local/tomcat

3、启动tomcat。

/usr/local/tomcat/bin/startup.sh

[root@liang-00 src]# /usr/local/tomcat/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/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@liang-00 src]# 

查看进程:

[root@liang-00 src]# ps aux|grep java
root      1840 58.6  8.4 2754784 84784 pts/0   Sl   12:09   0:13 /usr/local/jdk1.8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root      1899  2.0  0.0 112704   972 pts/0    S+   12:10   0:00 grep --color=auto java
[root@liang-00 src]# 

关闭tomcat。

  • tomcat不支持restart,只能用:/usr/local/tomcat/bin/shutdown.sh 先停掉tomcat,再用 /usr/local/tomcat/bin/startup.sh 启动。
  • 修改配置文件后也只能先 /usr/local/tomcat/bin/shutdown.sh 再 /usr/local/tomcat/bin/startup.sh
[root@liang-00 src]# /usr/local/tomcat/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/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@liang-00 src]# 

tomcat服务一共有三个端口:

  • 8080为提供web服务的端口;
  • 8005为管理端口;
  • 8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到;
[root@liang-00 src]# netstat -nltp|grep 80
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1959/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1959/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      1959/java           
[root@liang-00 src]# 

浏览器访问tomcat(8080端口)。

58c00da7a6107b05413a9146cd5b01eee4e.jpg

 

16.4 配置Tomcat监听80端口

1、编辑 vim /usr/local/tomcat/conf/server.xml

把8080端口改为80。

f30fe54f3d5c70a3c339c8e044b9d77ee10.jpg

2、重启tomcat服务。

/usr/local/tomcat/bin/shutdown.sh

/usr/local/tomcat/bin/startup.sh 

[root@liang-00 src]# /usr/local/tomcat/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/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@liang-00 src]# /usr/local/tomcat/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/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@liang-00 src]# 

查看服务端口:

[root@liang-00 src]# netstat -nltp|grep 80
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2246/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2246/java           
tcp6       0      0 :::80                   :::*                    LISTEN      2246/java           
[root@liang-00 src]# 

浏览器测试80端口访问。

9223b201e6deecac70f32ed5719523cbaee.jpg

 

16.5-16.7 配置Tomcat的虚拟主机

apache、nginx和tomcat都支持虚拟主机。

1、tomcat配置文件。

vim /usr/local/tomcat/conf/server.xml

其中:<Host>和</Host>之间为虚拟主机配置

eb265abe9f4907a7671721494bfb284da97.jpg

其中:

  • name:定义域名;
  • appBase:定义应用目录,此目录是相对目录,完整路径“usr/local/tomcat/目录”,java的应用通常是一个war包,只需要将war的压缩包放到appBase目录下面即可;之前访问的tomcat默认主页就是在appBase目录下,是在它的子目录ROOT下;
  • upbackWARs:如果是true,放在appBase下的war包会自动解压;
  • <Valve />:配置日志相关的内容;

2、增加虚拟主机。

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

docBase:因为appBase没有定义,所有可以定义一个docBase,存放一些目录文件;appBase和docBase只能有一个存在,一个存在另一个就要设置成空。

3、部署zrlog

ZrLog是使用Java开发的博客/CMS程序,具有简约,易用,组件化,内存占用低等特点。

下载zrlog

wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war

[root@liang-00 src]# du -sh zrlog-1.7.1-baaecb9-release.war 
6.8M    zrlog-1.7.1-baaecb9-release.war
[root@liang-00 src]# 

把zrlog-1.7.1-baaecb9-release.war 移动到 /usr/local/tomcat/webapps/ 会自动解压。

[root@liang-00 webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog  zrlog-1.7.1-baaecb9-release  zrlog-1.7.1-baaecb9-release.war
[root@liang-00 webapps]# 

浏览器访问zrlog:http://192.168.37.200/zrlog/

5d9174dc87662e3a6658f1e8a7373234772.jpg

要填写数据库信息首先要在mysql数据库中配置相关内容;数据库中创建zrlog数据库和用户:

Query OK, 1 row affected (0.12 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| my_test_db         |
| mysql              |
| performance_schema |
| test               |
| zrlog              |
+--------------------+
7 rows in set (0.00 sec)

mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by '123456';
Query OK, 0 rows affected (0.18 sec)

完成填写zrlog信息。

650ba25897940f2cfb0d292955af415a331.jpg

 

总结:

zrlog部署步骤:1、部署jdk和tomcat环境;2、下载zrlog的war包放在appBase目录下自动解压,就是访问的项目;3、配置数据库mysql,在浏览器中完成配置部署。

 

4、用域名访问zrlog

之前访问的zrlog都是用ip,下面来完成用域名访问zrlog。

vim /usr/local/tomcat/conf/server.xml

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

配置文件中appBase没有定义,所以可以用docBase来定义访问目录。

首先创建docBase目录,把appBase的zrlog目录下的文件拷贝到docBase下:

[root@liang-00 webapps]# mkdir /data/wwwroot/123.cn
[root@liang-00 webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/
[root@liang-00 webapps]# 

在window中绑定hosts,测试ping www.123.cn,重启tomcat服务。

edc8f03adc9a540689f948c8add7f094ae4.jpg

[root@liang-00 webapps]# /usr/local/tomcat/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/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@liang-00 webapps]# /usr/local/tomcat/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/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@liang-00 webapps]# 

浏览器访问:www.123.cn

a3368301bd23ab8b5f14c5dd6dd4d014d3b.jpg

 

5、webapp目录下的ROOT目录。

[root@liang-00 webapps]# ls ROOT/
asf-logo-wide.svg  bg-middle.png    bg-nav.png    favicon.ico  RELEASE-NOTES.txt  tomcat.gif  tomcat-power.gif  WEB-INF
bg-button.png      bg-nav-item.png  bg-upper.png  index.jsp    tomcat.css         tomcat.png  tomcat.svg
[root@liang-00 webapps]# 

appBase默认访问的就是ROOT目录

在部署自定义appBase目录也应该有ROOT目录,来存放一些图片、jsp等静态文件。

 

16.8 Tomcat日志

查看日志文件:ls /usr/local/tomcat/logs/

[root@liang-00 tomcat]# ls logs/
catalina.2018-12-25.log  host-manager.2018-12-25.log  localhost_access_log.2018-12-25.txt
catalina.out             localhost.2018-12-25.log     manager.2018-12-25.log
[root@liang-00 tomcat]#

其中:

  • 其中catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志;
  • 其中catalina.2018-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志;
  • host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志;
  • localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。

访问日志默认不会生成的,需要在server.xml中配置。

      <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"/>
            <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" />
    
      </Host>

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

扩展:

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

 

转载于:https://my.oschina.net/u/3993922/blog/2993058

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值