• Tomcat基本配置


    第二十六课 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

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

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

    2.解压jdk包

    [root@tomcat8 ~]# ls -l /usr/local/src/
    total 195752
    -rw-r--r-- 1 root root 190890122 May 23 21:09 jdk-8u171-linux-x64.tar.gz
    //解压jdk包
    [root@tomcat8 src]# tar -zxf jdk-8u171-linux-x64.tar.gz 
    [root@tomcat8 src]# ll
    total 195752
    drwxr-xr-x 8   10  143       255 Mar 28 20:18 jdk1.8.0_171
    -rw-r--r-- 1 root root 190890122 May 23 21:09 jdk-8u171-linux-x64.tar.gz
    

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

    [root@tomcat8 src]# ls -ld /usr/local/jdk1.8/
    drwxr-xr-x 8 10 143 255 Mar 28 20:18 /usr/local/jdk1.8/
    

    4.新建jdk环境变量

    [root@tomcat8 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@tomcat8 src]# source /etc/profile
    

    5.测试jdk环境是否生效

    [root@tomcat8 src]# source /etc/profile
    [root@tomcat8 src]# java -version
    java version "1.8.0_171"
    Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
    

    三、 安装Tomcat

    1.下载tomcat源码包,这里以tomcat-8.5.31为例

    [root@tomcat8 ~]# cd /usr/local/src/
    [root@tomcat8 src]#  wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz
    --2018-07-16 03:43:30--  https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz
    Resolving archive.apache.org (archive.apache.org)... 163.172.17.199
    Connecting to archive.apache.org (archive.apache.org)|163.172.17.199|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 9552281 (9.1M) [application/x-gzip]
    Saving to: ‘apache-tomcat-8.5.31.tar.gz’
    
    100%[=====================================================================================>] 9,552,281    120KB/s   in 2m 35s 
    
    2018-07-16 03:46:06 (60.2 KB/s) - ‘apache-tomcat-8.5.31.tar.gz’ saved [9552281/9552281]
    
    [root@tomcat8 src]# ls -lh
    total 192M
    -rw-r--r-- 1 root root 9.2M Apr 27 16:47 apache-tomcat-8.5.31.tar.gz
    -rw-r--r-- 1 root root 183M May 23 21:09 jdk-8u171-linux-x64.tar.gz
    
    

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

    [root@tomcat8 src]# tar -zxf apache-tomcat-8.5.31.tar.gz 
    [root@tomcat8 src]# ll
    total 195752
    drwxr-xr-x 9 root root       160 Jul 16 03:49 apache-tomcat-8.5.31
    -rw-r--r-- 1 root root   9552281 Apr 27 16:47 apache-tomcat-8.5.31.tar.gz
    -rw-r--r-- 1 root root 190890122 May 23 21:09 jdk-8u171-linux-x64.tar.gz
    [root@tomcat8 src]# mv apache-tomcat-8.5.31 /usr/local/tomcat
    [root@tomcat8 src]# ls -ld /usr/local/tomcat/
    drwxr-xr-x 9 root root 160 Jul 16 03:49 /usr/local/tomcat/
    

    3.启动tomcat

    [root@tomcat8 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@tomcat8 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@tomcat8 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.31</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>
    
    ....中间略...
    
                            </ul>
                        </div>
                    </div>
                    <br class="separator" />
                </div>
                <p class="copyright">Copyright &copy;1999-2018 Apache Software Foundation.  All Rights Reserved</p>
            </div>
        </body>
    
    </html>
    

    远程浏览器测试


    四、 配置Tomcat监听80端口

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

    [root@tomcat8 src]# vim /usr/local/tomcat/conf/server.xml 
    //修改如下字段
    Connector port="8080"---->Connector port="80"
    //停止tomcat
    [root@tomcat8 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@tomcat8 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@tomcat8 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.31</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>
    
    ...中间略...
    
                </div>
                <p class="copyright">Copyright &copy;1999-2018 Apache Software Foundation.  All Rights Reserved</p>
            </div>
        </body>
    

    远程浏览器测试


    五、 配置Tomcat虚拟主机

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

    [root@tomcat8 src]# vim /usr/local/tomcat/conf/server.xml 
    ...略...
    //默认虚拟主机的配置<Host...> </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 &quot;%r&quot; %s %b" />
    
          </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@tomcat8 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@tomcat8 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@tomcat8 tomcattest]# mkdir -p /data/wwwroot/tomcattest.com 
    [root@tomcat8 tomcattest]# ls -ld  /data/wwwroot/tomcattest.com  
    drwxr-xr-x 2 root root 37 Jul 16 04:21 /data/wwwroot/tomcattest.com
    //新建测试文件
    [root@tomcat8 tomcattest]# vim 1.html  
    [root@tomcat8 tomcattest]# cat 1.html 
    I am www.tomcattest.com!
    [root@tomcat8 tomcattest]# mv /usr/local/tomcat/webapps/ROOT/index.jsp /data/wwwroot/tomcattest/index.jsp
    
    

    本地测试

    [root@tomcat8 tomcattest]# curl -x127.0.0.1:80 www.tomcattest.com/1.html
    I am www.tomcattest.com!
    
    [root@tomcat8 tomcattest]# curl -x127.0.0.1:80 www.tomcattest.com/index.jsp -I
    HTTP/1.1 200 
    Content-Type: text/html;charset=UTF-8
    Transfer-Encoding: chunked
    Date: Mon, 16 Jul 2018 08:33:23 GMT
    

    远程浏览器测试

    Zrblog的安装

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

    2.将程序复制到webapp目录

    //因为与默认网站的目录重名,ROOT.war解压后将默认网站的内容覆盖了
    //如果不想覆盖默认网站,请在拷入ROOT目录前改名
    [root@tomcat8 ~]# ls /usr/local/src/
    apache-tomcat-8.5.31.tar.gz  jdk-8u171-linux-x64.tar.gz  ROOT.war
    [root@tomcat8 ~]# cd !$
    cd /usr/local/src/
    [root@tomcat8 src]# mv ROOT.war /usr/local/tomcat/webapps/
    [root@tomcat8 src]# cd !$
    cd /usr/local/tomcat/webapps/
    [root@tomcat8 webapps]# pwd
    /usr/local/tomcat/webapps
    [root@tomcat8 webapps]# ls
    docs  examples  host-manager  manager  ROOT  ROOT.war
    

    3.新建zrlog数据库用户

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

    4.进入安装向导

    如果不想利用默认的网站,可将应用程序放入相应定义的目录即可。.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@tomcat8 tomcattest]# cd /usr/local/tomcat/logs/
    [root@tomcat8 logs]# ls -l
    total 140
    -rw-r----- 1 root root 63847 Jul 16 04:26 catalina.2018-07-16.log
    -rw-r----- 1 root root 63847 Jul 16 04:26 catalina.out
    -rw-r----- 1 root root     0 Jul 16 03:51 host-manager.2018-07-16.log
    -rw-r----- 1 root root  4134 Jul 16 04:26 localhost.2018-07-16.log
    -rw-r----- 1 root root  1730 Jul 16 04:04 localhost_access_log.2018-07-16.txt
    -rw-r----- 1 root root     0 Jul 16 03:51 manager.2018-07-16.log
    
    //catalina日志示例
    -rw-r----- 1 root root     0 Jul 16 03:51 manager.2018-07-16.log
    [root@tomcat8 logs]# head -n 5  catalina.2018-07-16.log
    16-Jul-2018 03:51:21.812 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.5.31
    16-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Apr 27 2018 20:24:25 UTC
    16-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.5.31.0
    16-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
    16-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@tomcat8 logs]# head -n 5 catalina.out
    16-Jul-2018 03:51:21.812 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.5.31
    16-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Apr 27 2018 20:24:25 UTC
    16-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.5.31.0
    16-Jul-2018 03:51:21.816 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
    16-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@tomcat8 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 11250
    10.0.1.229 - - [16/Jul/2018:03:53:06 -0400] "GET /tomcat.png HTTP/1.1" 200 5103
    10.0.1.229 - - [16/Jul/2018:03:53:06 -0400] "GET /tomcat.css HTTP/1.1" 200 5581
    10.0.1.229 - - [16/Jul/2018:03:53:07 -0400] "GET /bg-upper.png HTTP/1.1" 200 3103
    10.0.1.229 - - [16/Jul/2018:03:53:07 -0400] "GET /asf-logo-wide.svg HTTP/1.1" 200 27235
    
    //localhost日志示例
    [root@tomcat8 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@tomcat8 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 &quot;%r&quot; %s %b" />
    </Host>
    
    [root@tomcat8 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@tomcat8 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@tomcat8 tomcattest]# ls
    localhost_access.2018-07-16.log
    
    [root@tomcat8 tomcattest]# curl -x127.0.0.1:80 www.tomcattest.com/1.html
    I am www.tomcattest.com!
    
    [root@tomcat8 tomcattest]# cat localhost_access.2018-07-16.log
    127.0.0.1 - - [16/Jul/2018:04:52:41 -0400] "GET /1.html HTTP/1.1" 200 25
    

    七、扩展

    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

  • 相关阅读:
    xamarin 安卓输出中文错误 乱码解决
    xamarin自定义 application 无法调试
    Xamarin中 ios 修改Assets.xcassets 文件后 无法调试和编译
    xamarin 编译出现Xamarin.Build.Forms.Tasks.GetTaskAbi 无法加载的错误解决方法
    13、最新安卓Xamarin绑定相关填坑之旅
    12、xamarin form中实现H5 网页唤醒微信支付的方法
    11、使用xamarin实现全屏播放rtmp之类的直播视频
    8.在XamarinAndroid上进一步控制包的大小
    Xamarin.Forms 中iOS通过URL Scheme判断应用是否安装
    Xamarin.Android 使用PopupMenu遇到的问题
  • 原文地址:https://www.cnblogs.com/minn/p/9318574.html
Copyright © 2020-2023  润新知