第二十六节课预习

第二十六课预习任务

16.1 Tomcat介绍
16.2 安装jdk
16.3 安装Tomcat
16.4 配置Tomcat监听80端口
16.5/16.6/16.7 配置Tomcat虚拟主机
16.8 Tomcat日志
扩展
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

一、 Tomcat介绍

Tomcat 是什么

Tomcat 是由 Apache软件基金会Apache Software Foundation)开发的一个 Servlet 容器akarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。并提供了作为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.61.71.8

 官网下载地址

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载jdk8,放到/usr/local/src/目录下

tar zxvf jdk-8u144-linux-x64.tar.gz

mv jdk1.8.0_144 /usr/local/jdk1.8

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

java -version

1.从Orcale官网下载当前的jdk版本,然后上传到服务器上

当前下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

[root@mysql src]# wget http://111.1.50.20/files/4041000006F611C7/download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

 

  1. 解压jdk包

 

[root@mysql src]# ls

jdk-8u181-linux-x64.tar.gz  mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

//解压jdk

[root@mysql src]# tar -zxf jdk-8u181-linux-x64.tar.gz 

[root@mysql src]# ls

jdk1.8.0_181                mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

jdk-8u181-linux-x64.tar.gz

3.移动jdk包到/usr/local/下

[root@mysql src]# mv jdk1.8.0_181 /usr/local/jdk1.8

4.新建jdk环境变量

[root@mysql src]# vim /etc/profile

//在文件末尾添加如下内容

export JAVA_HOME=/usr/local/jdk1.8/

export JAVA_BIN=$JAVA_HOME/bin

export JRE_HOME=$JAVA_HOME/jre

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

export CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/jre/lib/charsets.jar

 

//使环境变量立即生效

[root@mysql src]# source /etc/profile

5.测试jdk环境是否生效

[root@mysql src]# java -version

java version "1.8.0_181"

Java(TM) SE Runtime Environment (build 1.8.0_181-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

 

三、 安装Tomcat

 cd /usr/local/src

 wget http://apache.fayea.com/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz

 tar zxvf apache-tomcat-8.5.20.tar.gz

 mv apache-tomcat-8.5.20 /usr/local/tomcat

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

 ps aux|grep tomcat

 netstat -lntp |grep java

 三个端口8080为提供web服务的端口,8005为管理端口,8009端口为第三方服务调用的端口,比如httpdTomcat结合时会用

1.这里以tomcat-8.5.34为例

[root@mysql ~]# cd /usr/local/src/

或二进制

[root@mysql src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz

[root@mysql src]# ls

apache-tomcat-8.5.34             jdk-8u181-linux-x64.tar.gz

 mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

apache-tomcat-8.5.34.tar.gz

2.解压tomcat并移动到/usr/local

[root@mysql src]# tar -zxf apache-tomcat-8.5.34.tar.gz 

[root@mysql src]# mv apache-tomcat-8.5.34-src /usr/local/tomcat

  1. 启动tomcat

[root@mysql 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//jre

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

//检测是否正常启动

[root@mysql src]# netstat -nltup | grep java

tcp6       0      0 :::8080                 :::*                    LISTEN      1267/java           

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1267/java           

tcp6       0      0 :::8009                 :::*                    LISTEN      1267/java

本地测试

[root@mysql src]# curl -x:127.0.0.1:80 127.0.0.1:8080

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="UTF-8" />

        <title>Apache Tomcat/8.5.34</title>

        <link href="favicon.ico" rel="icon" type="image/x-icon" />

        <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />

        <link href="tomcat.css" rel="stylesheet" type="text/css" />

</head>

其他中间略

远程浏览器测试192.168.76.1358080

四、 配置Tomcat监听80端口

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

Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protocol="HTTP/1.1"

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

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

Tomcat默认侦听的是8080端口,不是很方便。可以通过修改配置文件的方式将默认侦听的端口改为80.

[root@mysql src]# vim /usr/local/tomcat/conf/server.xml //修改如下字段

Connector port="8080"---->Connector port="80"//停止tomcat

[root@mysql 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//jre

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

//启动tomcat

[root@mysql 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//jre

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.//注意,tomcat没有restart参数,需要用shutdown.sh关闭,然后再用Startup启动。

本地测试

[root@mysql src]# curl -x127.0.0.1:80 127.0.0.1

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="UTF-8" />

        <title>Apache Tomcat/8.5.34</title>

        <link href="favicon.ico" rel="icon" type="image/x-icon" />

        <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />

        <link href="tomcat.css" rel="stylesheet" type="text/css" />

    </head>

 

...中间略其他

远程浏览器测试

 

192.168.76.135

五、 配置Tomcat虚拟主机

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

其中<Host></Host>之间的配置为虚拟主机配置部分,name定义域名,

appBase定义应用的目录,Java的应用通常是一个war的压缩包,你只需要将war的压缩包放到appBase目录下面即可。刚刚阿铭访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里。

 增加虚拟主机,编辑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/ROOT下面,定义了docBase就以该目录为主了,其中appBasedocBase可以一样。在这一步操作过程中很多同学遇到过访问404的问题,其实就是docBase没有定义对。

 appBase为应用存放目录,通常是需要把war包直接放到该目录下面,它会自动解压成一个程序目录

 下面我们通过部署一个java的应用来体会appBasedocBase目录的作用

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

 mv zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/

 mv /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release /usr/local/tomcat/webapps/zrlog

 浏览器访问 ip:8080/zrlog/install/

 mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/

这里以增加虚拟主机www.tomcattest.com为例

[root@mysql src]# vim /usr/local/tomcat/conf/server.xml

......

//默认虚拟主机的配置<Host...> </Host>表示一个虚拟主机

      <Host name="localhost"  

appBase="webapps"

            unpackWARs="true" 

autoDeploy="true">

         </Host>

//增加www.tomcattest.com虚拟主机配置

<Host name="www.tomcattest.com" 

appBase=""

 unpackWARs= "true"

 autoDeploy="true"

xmlValidation="false" 

xmlNamespaceAware="false">

<Context path="" docBase="/data/wwwroot/tomcattest.com/" debug="0" reloadable="true" crossContext="true"/>

</Host>

 

[root@mysql tomcattest]# /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//jre

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

[root@mysql tomcattest]# /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//jre

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

 

[root@mysql tomcattest]# mkdir -p /data/wwwroot/tomcattest.com

 

[root@mysql src]# ls -ld  /data/wwwroot/tomcattest.com

drwxr-xr-x. 2 root root 6 1011 11:38 /data/wwwroot/tomcattest.com

//新建测试文件

[root@mysql src]# cd /data/wwwroot/tomcattest.com

[root@mysql tomcattest.com]# vim 1.html  

[root@mysql tomcattest.com]# cat 1.html

I am www.tomcattest.com!

[root@mysql tomcattest.com]# mv /usr/local/tomcat/webapps/ROOT/index.jsp /data/wwwroot/tomcattest.com/index.jsp

本地测试

[root@mysql tomcattest]# curl -x127.0.0.1:80 www.tomcattest.com/1.html

I am www.tomcattest.com!

 

[root@mysql tomcattest]# curl -x127.0.0.1:80 www.tomcattest.com/index.jsp -I

HTTP/1.1 200 Content-Type: text/html;charset=UTF-8Transfer-Encoding: chunkedDate: Mon, 16 Jul 2018 08:33:23 GMT

远程浏览器测试

 www.tomcattest.com/1.html

www.tomcattest.com/index.jsp

 

Zrblog的安装

1.从官网下载zrblog的安装包并上传到服务器

2.将程序复制到webapp目录

//因为与默认网站的目录重名,ROOT.war解压后将默认网站的内容覆盖了

//如果不想覆盖默认网站,请在拷入ROOT目录前改名

[root@mysql ~]# cd /usr/local/src/

[root@mysql src]# mv ROOT.war /usr/local/tomcat/webapps/

[root@mysql src]# cd !$

cd /usr/local/tomcat/webapps/

[root@mysql webapps]# pwd

/usr/local/tomcat/webapps

[root@mysql webapps]# ls

docs  examples  host-manager  manager  ROOT  ROOT.war

3.新建zrlog数据库用户

[root@mysql init.d]# mysql -uroot

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.6.36 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql> create database zrlog;

Query OK, 1 row affected (0.00 sec)

 

mysql> grant all on zrlog.* to 'zrlogadmin'@127.0.0.1 identified by '123456';

Query OK, 0 rows affected (0.01 sec)

  1. 进入安装向导 

192.168.76.135 /install

192.168.76.135

192.168.76.135 /admin/index#/dashboard

如果不想利用默认的网站,可将应用程序放入相应定义的目录即可。.war包在appbase定义的目录下

会自动解压。已经解压好的网站程序,也可以放到docbase定义的目录下。

 

六、 Tomcat日志

tomcat日志在/usr/local/tomcat/logs/下

其中catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。

其中catalina.2017-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志。

host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。

localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。

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

[root@mysql tomcattest]# cd /usr/local/tomcat/logs/

[root@mysql logs]# ls -l

//catalina日志示例

-rw-r----- 1 root root     0 Jul 16 03:51 manager.2018-07-16.log

[root@mysql logs]# head -n 5  catalina.2018-10-10.log16-Jul-2018 03:51:21.812 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.5.3116-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Apr 27 2018 20:24:25 UTC16-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.5.31.016-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux16-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            3.10.0-693.el7.x86_64

 

//catalina.out日志示例[root@mysql logs]# head -n 5 catalina.out16-Jul-2018 03:51:21.812 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.5.3116-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Apr 27 2018 20:24:25 UTC16-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.5.31.016-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux16-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            3.10.0-693.el7.x86_64

 

//localhost_access日志示例[root@mysql logs]# head -n 5 localhost_access_log.2018-07-16.txt 10.0.1.229 - - [16/Jul/2018:03:53:06 -0400] "GET / HTTP/1.1" 200 1125010.0.1.229 - - [16/Jul/2018:03:53:06 -0400] "GET /tomcat.png HTTP/1.1" 200 510310.0.1.229 - - [16/Jul/2018:03:53:06 -0400] "GET /tomcat.css HTTP/1.1" 200 558110.0.1.229 - - [16/Jul/2018:03:53:07 -0400] "GET /bg-upper.png HTTP/1.1" 200 310310.0.1.229 - - [16/Jul/2018:03:53:07 -0400] "GET /asf-logo-wide.svg HTTP/1.1" 200 27235

 

//localhost日志示例[root@mysql logs]# head -n 5 localhost.2018-07-16.log 16-Jul-2018 03:51:23.554 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()16-Jul-2018 03:51:23.554 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()16-Jul-2018 03:51:23.556 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log ContextListener: attributeAdded('StockTicker', 'async.Stockticker@371e34e1')16-Jul-2018 04:00:44.831 INFO [localhost-startStop-2] org.apache.catalina.core.ApplicationContext.log SessionListener: contextDestroyed()16-Jul-2018 04:00:44.831 INFO [localhost-startStop-2] org.apache.catalina.core.ApplicationContext.log ContextListener: contextDestroyed()

 

//配置www.tomcattest.com的访问日志[root@mysql logs]# vim /usr/local/tomcat/conf/server.xml

 

      </Host>

      <Host name="www.tomcattest.com" appBase=""

      unpackWARs= "true" autoDeploy="true"

      xmlValidation="false" xmlNamespaceAware="false">

      <Context path="" docBase="/data/wwwroot/tomcattest.com/" debug="0" reloadable="true" crossContext="true"/>

      //增加日志配置

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

      prefix="localhost_access" suffix=".log"

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

</Host>

[root@mysql tomcattest]# /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//jre

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar[root@mysql tomcattest]# /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//jre

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

[root@mysql tomcattest]# ls

localhost_access.2018-07-16.log

[root@mysql tomcattest]# curl -x127.0.0.1:80 www.tomcattest.com/1.html

I am www.tomcattest.com!

[root@mysql tomcattest]# cat localhost_access.2018-07-16.log127.0.0.1 - - [16/Jul/2018:04:52:41 -0400] "GET /1.html HTTP/1.1" 200 25

猜你喜欢

转载自www.cnblogs.com/linuxzhang/p/9771605.html