Tomcat

Tomcat

Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。

Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。目前有很多网站是用Java编写的,所以解析Java程序就必须有相关的软件来完成,Tomcat就是其中之一。

Java程序写的网站用Tomcat+JDK来运行。Tomcat是一个中间件,真正起作用的,解析Java脚本的是JDK。

JDK(Java Development Kit)是整个Java的核心,它包含了Java运行环境和一堆Java相关的工具以及Java基础库。最主流的JDK为Sun公司发布的JDK,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装OpenJDK。

1.Tomcat安装配置端口

①基础环境准备

安装一台Centos7.5操作系统的虚拟机

关闭防火墙和selinux

[root@antong ~]# systemctl stop firewalld.service 
[root@antong ~]# systemctl disable firewalld.service 
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@antong ~]# vim /etc/selinux/config 
SELINUX=disabled
[root@antong ~]# setenforce 0
②安装JDK

官网下载地址:http://www.oracle.com/echnetwork/java/javase/downloads/jdk8-downloads-2133151.html

这个下载地址不能在Linux虚拟机里使用wget命令下载,只能先通过浏览器下载到本机上,然后再上传到Linux。本次下载的版本为jdk1.8,将虚拟机连接CRT,通过CRT上传JDK到/usr/local/src/目录下。

[root@antong ~]# cd /usr/local/src/
[root@antong src]# tar -zxvf jdk-8u301-linux-x64.tar.gz 
[root@antong src]# mv jdk1.8.0_211/  /usr/local/jdk1.8
[root@antong src]# ls /usr/local/
bin  etc  games  include  jdk1.8  lib  lib64  libexec  sbin  share  src
③修改环境变量并检查JDK安装情况
[root@antong src]# vim /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
[root@antong src]# source /etc/profile
[root@antong src]# java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
④安装Tomcat

官网下载地址:http://tomcat.apache.org/

[root@antong ~]# cd /usr/local/src/
[root@antong src]# tar -zxvf apache-tomcat-9.0.52.tar.gz 
[root@antong src]# mv apache-tomcat-9.0.52 /usr/local/tomcat
⑤启动Tomcat并测试
[root@antong src]# cd /usr/local/tomcat/bin/
[root@antong 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
Using CATALINA_OPTS:   
Tomcat started.
[root@antong bin]# netstat -lnpt | grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1698/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      1698/java           

8080为提供Web服务的端口;

8005为管理端口;

8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到;

⑥配置Tomcat监听80端口

Tomcat 监听的是8080端口,如果想要直接访问,不加8080端口(默认输入一个IP或者域名,访问80端口时是可以省略IP后端口号的)就需要配置Tomcat监听80端口,Tomcat是支持端口自定义的。

修改完配置文件,接下来就是重启Tomcat服务,Tomcat服务是不支持restart的方式重启服务的,所以要想重启服务必须先关闭服务,使用命令/usr/local/tomcat/bin/shutdown.sh,然后再启动服务,使用命令/usr/local/tomcat/bin/startup.sh。

//编辑Tomcat配置文件server.xml,直接搜索8080找到如下内容
[root@antong bin]# vim /usr/local/tomcat/conf/server.xml
......
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
//将这里的8080直接改成80
......
[root@antong bin]# netstat -plnt | grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1845/java           
tcp6       0      0 :::80                   :::*                    LISTEN      1845/java           

2.配置Tomcat虚拟主机

①查看默认虚拟主机

Tomcat和Apache、Nginx一样,都支持虚拟主机配置。每个虚拟主机配置文件就是一台服务器,支持一个IP下可以访问多个域名,每个域名代表一个网站。所以一台服务器上可以配置多个网站。

//编辑Tomcat配置文件,直接在配置文件内搜索Host
[root@antong ~]# vim /usr/local/tomcat/conf/server.xml 
......
  <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>
......

其中之间的配置为虚拟主机配置部分:

name定义域名;

appBase定义应用的目录;

unpackWARs为是否自动解压war包;

autoDeploy 如果此项设置为true,表示Tomcat服务处于运行状态,能够检测appbase下的文件,如果有新的Web应用加入进来,会自动发布这个Web应用。

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

②新增虚拟主机
[root@antong ~]# 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>

搭建了一个Tomcat,想要使用Tomcat去跑一个网站。首先应用不能是一个传统所谓的目录(Apache、Nginx访问网站,首先需要指定一个目录,目录里存放着PHP文件或者是Html的文件,然后去访问),Tomcat需要提供一个war的包,就是一个压缩包,这个压缩包里面包含着运行这个网站的一些文件,包括配置,js代码,数据库相关的等等,都需要打包成war这种文件,而这个文件需要放置到 webapps 里面。

3.appBase部署Java应用

下面我们通过部署个Java的应用来体会appBase和docBase目录的区别。

为了方便测试,下载一个zrlog(Java写的blog站点应用,轻量),zrlog实际就是一个war包。

(下载地址:http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war)

先暂时将zrlog的war包下载到/usr/local/src目录下,命令如下:

[root@antong ~]# cd /usr/local/src/
[root@antong src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
...
[root@antong src]# ls |grep zrlog
zrlog-1.7.1-baaecb9-release.war
//appBase支持自动解压,所以直接将war包拷贝到/usr/local/tomcat/webapps/目录下
[root@antong src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@antong src]# ls /usr/local/tomcat/webapps/
docs          manager                      zrlog-1.7.1-baaecb9-release.war
examples      ROOT
host-manager  zrlog-1.7.1-baaecb9-release
// 将war包拷贝到/usr/local/tomcat/webapps/目录下之后,包会自动解压。(前提是tomcat正常启动。
root@antong src]# cd /usr/local/tomcat/webapps/
[root@antong webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
[root@antong webapps]# ls
docs      host-manager  ROOT   zrlog-1.7.1-baaecb9-release.war
examples  manager       zrlog
[root@antong webapps]# ls  //一但重命名或删除war包解压后的包的文件时,war包就会在解压出一个文件夹。
docs      host-manager  ROOT   zrlog-1.7.1-baaecb9-release
examples  manager       zrlog  zrlog-1.7.1-baaecb9-release.war

用浏览器访问http://(IP)/zrlog(注意你的IP)

安装mariadb数据库并创建一个zrlog数据库和zrlog用户。

[root@antong webapps]# yum install -y mariadb-server.x86_64 
[root@antong webapps]# mysql_secure_installation   //初始化数据库,配置密码,一般都是ynyy
[root@antong webapps]# systemctl restart mariadb.service 
[root@antong webapps]# mysql -uroot -p
Enter password:    //输入你的密码
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> create database zrlog;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by '000000'
    -> ;
Query OK, 0 rows affected (0.00 sec)

回到浏览器继续进行安装

4.docBase部署Java应用

我们在浏览器访问zrlog需要指定IP地址加目录,使用docBase输入IP地址直接访问

[root@antong ~]# 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>
//docBase 定义的目录为:/data/wwwroot/123.cn
[root@antong webapps]# mkdir -p /data/wwwroot/123.cn/
[root@antong webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/
//修改Windows下的hosts文件,hosts文件路径:C:\Windows\System32\drivers\etc
在文件下面添加
192.168.200.20 www.123.cn

5.Tomcat日志

①查看日志

Tomcat在应用过程中,难免会出现错误,如何去查看这些错误,这就需要查看Tomcat的日志。Tomcat日志存放在/usr/local/tomcat/logs/目录下。

[root@antong ~]# ls /usr/local/tomcat/logs/
catalina.2021-09-05.log      localhost.2021-09-05.log
catalina.out                 localhost_access_log.2021-09-05.txt
host-manager.2021-09-05.log  manager.2021-09-05.log

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

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

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

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

②配置生成日志

由于日志默认不会生成,需要在server.xml中配置一下。所以接下来配置新增虚拟主机的访问日志,具体方法是在对应虚拟主机的里面加入下面的配置(我们用www.123.cn来进行配置),编辑以下配置文件server.xml,命令如下:

[root@antong ~]# 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"/>
       
 <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>
......

valve为日志文件配置;

prefix定义访问日志的前缀;

suffix定义日志的后缀;

pattern定义日志格式。

注意:新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。配置完成后,重启Tomcat服务,命令如下:

[root@antong ~]# /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
Using CATALINA_OPTS:   
^[[A[root@antong ~]# /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
Using CATALINA_OPTS:   
Tomcat started.

重启Tomcat服务完成后,访问网站,查看/usr/local/tomcat/logs目录下是否有日志生成,并且查看生成的日志信息,命令如下:

[root@antong ~]# ls /usr/local/tomcat/logs/
123.cn_access.2021-09-05.log  localhost.2021-09-05.log
catalina.2021-09-05.log       localhost_access_log.2021-09-05.txt
catalina.out                  manager.2021-09-05.log
host-manager.2021-09-05.log   www.123.cn_access.2021-09-05.log
posted @ 2021-09-06 00:09  殇黯瞳  阅读(163)  评论(0编辑  收藏  举报