2018-07-16笔记(tomcat 配置)

16.1 Tomcat介绍

一、Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其余一些公司及我的共同开发而成。
二、Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是不少的场合下被广泛使用,是开发和调试JSP 程序的首选。
三、java程序写的网站用Tomcat+JDK来运行,Tomcat是一个中间件,真正起做用的,解析Java脚本的是JDK。JDK(Java development kit)是整个Java的核心,它包含了Java运行环境和一堆Java相关的工具以及Java基础库。
四、最主流的JDK是由sun公司发布的JDK,除此以外,IBM公司也有发布JDK,centos上也可使用yum安装openjdk。html

16.2 安装jdk

jdk目前版本1.6 1.7 1.8,一般说的六、七、8版本对应的就是1.六、1.七、1.8
咱们用1.8版本
1.首先去jdk官网下载一个jdk包
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2018-07-16笔记(tomcat 配置)
先赞成许可才能下载,选择对应的版本下载便可,先下载到windows机器上,这里由于用的是centos7的系统因此选择下载64位tar.gz的包
下载完成用xshell自带的sftp工具上传到centos7的/usr/local/src/目录下java

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# ll
总用量 912764
-rw-r--r--  1 root  root  185646832 7月  18 09:52 jdk-8u181-linux-x64.tar.gz

解压并移动到对应目录重命名便可,不用安装mysql

[root@localhost src]# tar zxf jdk-8u181-linux-x64.tar.gz 
[root@localhost src]# mv jdk1.8.0_181/ /usr/local/jdk1.8                 #把解压完的目录移动到/usr/local/下并更名为jdk1.8

编辑全局环境变量并使其生效linux

[root@localhost src]# vi /etc/profile                       #在最后面添加如下几行,对应的目录改为jdk全部的目录便可
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
:wq保存配置
[root@localhost src]# source /etc/profile       #刷新配置

测试有没安装成功web

[root@localhost 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)

#若该命令执行成功,且执行结果和安装信息一致,说明配置成功。
#若是出现open jdk 搜一下 rpm -qa |grep open jdk,多是系统安装了open jdk,删除便可sql

16.3 安装Tomcat

下载对应的tomcat包,http://apache.fayea.com/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
这里提供的下载地址有可能会失效
咱们把tomcat下载到/usr/local/src/目录下,并解压shell

[root@localhost src]# wget http://apache.fayea.com/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
[root@localhost src]# tar zxf apache-tomcat-8.5.32.tar.gz

解压完后把目录移动到/usr/local/下并更名为tomcat数据库

[root@localhost src]# mv apache-tomcat-8.5.32 /usr/local/tomcat

用tomcat自带的脚本启动apache

[root@localhost 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.

这里能够看到输出一些信息,使用的环境变量,就是刚才咱们配置的
查看进程和端口,进程名为javabootstrap

[root@localhost src]# ps aux |grep java
root       1154  3.0  7.9 2294184 79476 pts/0   Sl   10:11   0:02 /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       1201  0.0  0.0 112720   972 pts/0    D+   10:13   0:00 grep --color=auto java
[root@localhost src]# netstat -lnp|grep java
tcp6       0      0 :::8080                 :::*                    LISTEN      1154/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1154/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1154/java

三个端口
端口8080:提供web服务的
端口8005:管理端口
端口8009:第三方服务调用端口(如:httpd和Tomcat结合时会用到)
注意:8005端口有时候会启动的比较慢,起来后页面加载就很快了
防火墙放行对应的tomcat端口或者直接关闭,用浏览器访问页面是否正常,输入IP加端口8080,这里为192.168.66.131:8080
2018-07-16笔记(tomcat 配置)

能够看到已经正常访问,说明tomcat正常
关闭Tomcat,一样是用tomcat自带的脚本关闭:

[root@localhost  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

注意:tomcat是不支持restart的,有时候可能会遇到8005端口没起来,没法关闭tomcat的现象,可使用killall命令把全部java进程杀死

16.4 配置Tomcat监听80端口

修改tomcat配置文件server.xml ,这里个人路径为/usr/local/tomcat/conf/server.xml,能够修改默认的监听的web页面的端口,这里咱们把8080改为80,注意80端口是系统保留的端口,必须使用root用户才能绑定

[root@localhost src]# vi /usr/local/tomcat/conf/server.xml             #搜索关键字8080,找到下面的内容,并把8080,改为80
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

修改完后变成

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

2018-07-16笔记(tomcat 配置)
:wq保存配置后,关闭tomcat,并从新启动,使用生效

[root@localhost 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@localhost 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.

查看java监听的端口是否变成80,有时候可能会遇到80端口给占用的状况,把占用的进程关闭便可

[root@localhost src]# netstat -lnp |grep java
tcp6       0      0 :::80                   :::*                    LISTEN      1283/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1283/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1283/java

使用浏览器直接访问,能够看到直接输入ip便可访问了
2018-07-16笔记(tomcat 配置)

16.5/16.6/16.7 配置Tomcat虚拟主机

在配置文件server.xml中搜索“Host”找到虚拟主机配置参数

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />

      </Host>

这里一个Host段表示一个虚拟主机配置,其中name用来定义域名,appBase用来存放java应用程序的目录,应用程序一般为.war的包,unpackWARs定义是否自动解压war包
#appbase是定义Tomcat的应用(war文件)存放位置
#若是未使用该参数定义其应用,可使用docbase来指定应用存放目录
#当这两个参数同时存在时,须要将其中一个写为空!!!!!!
咱们能够模拟新增一个虚拟主机配置,在以前的虚拟主机</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,就是网站存放的目录
下面咱们用实例来应用这个虚拟主机配置
首先先下载用java开发的博客程序zrlog,下载地址可能会失效,请自行查找下载

[root@localhost logs]# cd /usr/local/src/
[root@cham002 src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
[root@localhost src]# ll
总用量 919720
-rw-r--r--  1 root  root    7122027 1月  15 2018 zrlog-1.7.1-baaecb9-release.war

注意:.war文件能够在windows机器用解压软件解压,也能够放到tomcat的webapps目录,让它自动解包,这里放到webapps目录下

[root@localhost src]# cp /usr/local/src/zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@localhost src]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# ll
总用量 6960
drwxr-x--- 14 root root    4096 7月  18 10:08 docs
drwxr-x---  6 root root      83 7月  18 10:08 examples
drwxr-x---  5 root root      87 7月  18 10:08 host-manager
drwxr-x---  5 root root     103 7月  18 10:08 manager
drwxr-x---  3 root root     306 7月  18 10:08 ROOT
drwxr-x---  9 root root     126 7月  18 11:14 zrlog-1.7.1-baaecb9-release
-rw-r--r--  1 root root 7122027 7月  18 11:14 zrlog-1.7.1-baaecb9-release.war

能够看到已经自动解包了
这里须要注意的是,当把war包删除的时候,对应的目录也会删除,当把目录删除或更名的时候,war包存在,还会自动解压成对应的目录
这里能够直接ip加博客目录名字进行访问,
2018-07-16笔记(tomcat 配置)
由于这样访问后面还要加目录的名字,比较麻烦,咱们来应用下刚才咱们新加的虚拟主机虚拟文件

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

把自动解压出来的目录zrlog-1.7.1-baaecb9-release下全部东西放到/data/wwwroot/123.cn/ 下,也就是刚才咱们定义的虚拟主机docBase的目录

[root@localhost webapps]# mkdir -p /data/wwwroot/123.cn/ 
[root@localhost webapps]# cp -r zrlog-1.7.1-baaecb9-release/* /data/wwwroot/123.cn/

注意:这里咱们没有修改配置文件,只是复制文件到网站目录下,因此没有重启tomcat服务,若是修改了配置文件,记得重启tomcat使其生效

[root@localhost 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@localhost 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.

由于定义了域名www.123.cn,因此还要在windows机器上修改对应的hosts,把www.123.cn指定到对应的机器上
2018-07-16笔记(tomcat 配置)
用浏览器进行访问,直接输入域名www.123.cn
2018-07-16笔记(tomcat 配置)
能够看到也是正常访问的
下面进入到mysql里面建立数据库并受权

mysql> create database zrlog;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zrlog.* to 'zrlog'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

把这些信息写入到刚才的zrlog安装向导页面里
2018-07-16笔记(tomcat 配置)
根据提示完成后面的信息便可完成zrlog的安装
2018-07-16笔记(tomcat 配置)

16.8 Tomcat日志

tomcat日志默认是放在tomcat安装目录下的 logs目录下

[root@localhost src]# cd /usr/local/tomcat/logs/
[root@localhost logs]# ll
总用量 40
-rw-r----- 1 root root 13993 7月  18 10:39 catalina.2018-07-18.log
-rw-r----- 1 root root 13993 7月  18 10:39 catalina.out
-rw-r----- 1 root root     0 7月  18 10:11 host-manager.2018-07-18.log
-rw-r----- 1 root root  1206 7月  18 10:39 localhost.2018-07-18.log
-rw-r----- 1 root root  1565 7月  18 10:42 localhost_access_log.2018-07-18.txt
-rw-r----- 1 root root     0 7月  18 10:11 manager.2018-07-18.log

说明:

catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。
catalina.2018-xx-xx.log和catalina.out内容相同,前者会天天生成一个新的日志。
host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。
localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。
访问日志默认不会生成,须要在server.xml中配置一下。
配置访问日志
具体方法是在对应虚拟主机的<Host></Host>里面加入下面的配置(以域名www123.cn为例):

<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="www.123.cn_access" suffix=".log"
               pattern="%h %l %u %t "%r" %s %b" />
    </Host>

核心参数:<Valve/> 说明:
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内存溢出
http://www.javashuo.com/article/p-ftukylfd-du.html

相关文章
相关标签/搜索