Tomcat基础架构——jdk、java、zrlog

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公司发布的jdk,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装openjdk。

我们已经学过了LAMP和LNMP架构;针对的开发语言是PHP;可以说PHP是一门开发Web程序非常流行的语言;早期的比较流行的是asp,是在windows平台上运行的一种编程语言;但是因为安全性不高;所以越来越多做网站的人用Php去开发网站,相对来说也是比较安全的。

除了PHP外,还有一门语言叫java;java是一门非常庞大的开发语言;不仅仅是可以开发开网站;也可以开发大型的软件、工具、甚至是游戏都可以;tomcat实际上是一个中间件,用来运行Java语言写的网站;那我们Php写的代码,要用php去解析;java就要用tomcat加上JDK一起去解析。

二、安装jdk

先在windows环境下,下载好jdk,用xftp传输到linux虚拟机root下

[root@ying01 ~]# ls
10   11       221.txt  3  555  8  anaconda-ks.cfg  ccc  grep         ib_logfile1                 NBA  sed1    test      wenben  ysb
100  12zhang  222      5  6    9  awk              ch   ib_logfile0  jdk-8u171-linux-x64.tar.gz  sed  shiyan  test.txt  xargs
[root@ying01 ~]# mv jdk-8u171-linux-x64.tar.gz /usr/local/src/
[root@ying01 ~]# cd !$
cd /usr/local/src/
[root@ying01 src]# tar zxf jdk-8u171-linux-x64.tar.gz    //解压包
[root@ying01 src]# du -sh jdk1.8.0_171/              
374M	jdk1.8.0_171/
[root@ying01 src]# mv jdk1.8.0_171 /usr/local/jdk1.8    //移动并改名

在/etc/profile增加以下代码

[root@ying01 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@ying01 src]# source /etc/profile             //加载服务
[root@ying01 src]# java -version                   //查看java版本
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

其实Tomcat只是一个中间件,真正起作用的就是咱们已经安装的jdk。没有Tomcat还不可以,他的作用就是监听8080;8005;8009端口。假如说,访问站点,需要一个webserver,而Tomcat就可以理解为webserver!

在官网找到二进制包,下载;

[root@ying01 src]# wget http://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz

解压、并把解压包移到 /usr/local/tomcat下;

[root@ying01 src]# tar -zxf apache-tomcat-8.5.32.tar.gz
[root@ying01 src]# mv apache-tomcat-8.5.32 /usr/local/tomcat

开启服务与关闭服务

[root@ying01 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@ying01 src]# ps aux |grep java      //java已经启动
root      7794  9.9  5.1 3000080 96832 pts/0   Sl   19:58   0:05 /usr/local/jdk1.8/bin/java -java.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      7852  0.0  0.0 112720   984 pts/0    S+   19:58   0:00 grep --color=auto java
[root@ying01 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@ying01 src]# !ps                                      //没有java进程
ps aux |grep java 
root      7897  0.0  0.0 112720   984 pts/0    S+   20:00   0:00 grep --color=auto java

查看java有关端口

[root@ying01 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@ying01 src]# netstat -lntp |grep java
tcp6       0      0 :::8080                 :::*                    LISTEN      8986/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      8986/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      8986/java           

三个端口释义:

  • 8080为提供web服务的端口;
  • 8005为管理端口;//显示调用会慢
  • 8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到

在关闭防火墙后,用浏览器访问其默认主页:192.168.112.136:8080

[root@ying01 src]# systemctl stop firewalld
[root@ying01 src]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

四、配置Tomcat监听80端口

要给Tomcat监听80端口,那先看戏80监听端口,是否占用;

[root@ying01 src]# netstat -lntp |grep 80               //被nginx占用
tcp        0      0 0.0.0.0:37580           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1072/nginx: master  
tcp6       0      0 :::8080                 :::*                    LISTEN      8986/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      8986/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      8986/java           
[root@ying01 src]# /etc/init.d/nginx stop               //关闭nginx服务  
Stopping nginx (via systemctl):                            [  确定  ]
[root@ying01 src]# netstat -lntp |grep 80            
tcp        0      0 0.0.0.0:37580           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::8080                 :::*                    LISTEN      8986/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      8986/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      8986/java           

在确认80端口处于空闲状态,在tomcat主配置文件,把8080端口改为80端口;

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

重新加载tomcat主配置文件,并查看80端口情况;

[root@ying01 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@ying01 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@ying01 src]# netstat -lntp |grep 80        //java占用80端口
tcp        0      0 0.0.0.0:37580           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::80                   :::*                    LISTEN      9350/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      9350/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      9350/java           

此时再在浏览器测试8080,已经打不开网页,而用80就可以;

五、配置Tomcat的虚拟主机

5.1 虚拟主机配置文件

在tomcat的配置文件中,增加一个虚拟主机,代码如下:

[root@ying01 ~]# 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/www.123.cn/" debug="0" reloadable="true" crossContext="true"/>
 </Host>

以上代码关键词释义:

  • name 定义域名;
  • appBase 定义应用的目录;
  • unpackWARs=”true” 是否自动解压;(也是就是说,当我们往站点目录里面直接上传一个war的包,它会自动解压)
  • docBase,这个参数用来定义网站的文件存放路径,如果不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase可以一样。在这一步操作过程中,可能会遇到过访问404的问题,其实就是docBase没有定义对。
5.2 建立java站点
  • 试验准备

下载站点程序zrlog;

[root@ying01 src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war

把此war包,复制一份到/usr/local/tomcat/webapps/下,在此目录下会自动解压;

[root@ying01 src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@ying01 src]# ls /usr/local/tomcat/webapps/         //多了一个zrlog的目录
docs  examples  host-manager  manager  ROOT  zrlog-1.7.1-baaecb9-release  zrlog-1.7.1-baaecb9-release.war


现在我们做实验,把zrlog-1.7.1-baaecb9-release解压包,改名为zrlog;

[root@ying01 src]# cd /usr/local/tomcat/webapps/
[root@ying01 webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
[root@ying01 webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog  zrlog-1.7.1-baaecb9-release.war
[root@ying01 webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog  zrlog-1.7.1-baaecb9-release  zrlog-1.7.1-baaecb9-release.war

此时在浏览器中输入:http://192.168.112.136/zrlog

  • 创建网站数据库

进入mysql,创建一个数据库,并创建用户

[root@ying01 webapps]# mysql -uroot -pyinglinux
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
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;             //创建zrlog数据库
Query OK, 1 row affected (0.07 sec)

mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 indentified by 'yinglinux1';  //指定密码
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'indentified by 'yinglinux1'' at line 1
mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'yinglinux1';
Query OK, 0 rows affected (0.19 sec)

mysql> quit
Bye

使用新用户,及密码登录

[root@ying01 webapps]# mysql uzrlog -h127.0.0.1 -pyinglinux1
Warning: Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@ying01 webapps]# mysql -uzrlog -h127.0.0.1 -pyinglinux1
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
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> show databases;     //显示当前库,里面有zrlog数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zrlog              |
+--------------------+
3 rows in set (0.00 sec)

mysql> quit

  • 在浏览器测试

配置好数据库后,现在回到刚才的网页上,按下面填写;

点击下一步,按下图填写;

点击下一步,按下图操作;

此时,博客配置好,里面有一篇文章;

在上个页面,点击管理,进入后台操作;

在后台写一篇文章,自定义,它随时保存;

点击保存,刷新页面,这时主页出现新建的文章;

  • 测试另一个虚拟主机,域名为www.123.cn

在windows下,host文件下,配置www.123.cn;在cmd下ping此域名;

Microsoft Windows [版本 10.0.17134.165]
(c) 2018 Microsoft Corporation。保留所有权利。

C:\Users\zqsgq>ping www.123.cn

正在 Ping www.abc.com [192.168.112.136] 具有 32 字节的数据:
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64

192.168.112.136 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

C:\Users\zqsgq>

按虚拟主机配置文件,创建相应的网站目录

[root@ying01 webapps]# mkdir /data/wwwroot/123.cn

把zrlog目录下所有文件,移到新创建的网站目录123.cn

[root@ying01 webapps]# mv zrlog/* /data/wwwroot/123.cn/

重新加载tomcat配置文件

[root@ying01 webapps]# /usr/local/tomcat/bin/shutdown.sh

[root@ying01 webapps]# /usr/local/tomcat/bin/startup.sh

[root@ying01 webapps]# netstat -lntp |grep 80               
tcp        0      0 0.0.0.0:37580           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::80                   :::*                    LISTEN      10068/java          
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      10068/java          
tcp6       0      0 :::8009                 :::*                    LISTEN      10068/java          
[root@ying01 webapps]# 

回到浏览器下,用域名www.123.cn访问,此时得到如下页面;

5.3 ROOT目录

网站的图标和一些重要信息都在/usr/local/tomcat/webapps/ROOT下

[root@ying01 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@ying01 webapps]#

比如ROOT下tomcat-power.gif 动图,就是主页上一个图;

再比如这个按钮:bg-button.png

六、Tomcat日志

Tomcat日志目录位置/usr/local/tomcat/logs

[root@ying01 ~]# cd /usr/local/tomcat/
[root@ying01 tomcat]# ls logs
catalina.2018-07-16.log      localhost.2018-07-17.log
catalina.2018-07-17.log      localhost_access_log.2018-07-16.txt
catalina.out                 localhost_access_log.2018-07-17.txt
host-manager.2018-07-16.log  manager.2018-07-16.log
host-manager.2018-07-17.log  manager.2018-07-17.log
localhost.2018-07-16.log

日志目录下,各种日志的作用:

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

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

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

此为虚拟主机下的,访问日志配置:
   <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  //关键字logs
          prefix="localhost_access_log" suffix=".txt"         //定义的前缀名,后缀名
          pattern="%h %l %u %t &quot;%r&quot; %s %b" />       //定义日志格式

新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志; 错误日志会统一记录到catalina.out中。

关于Tomcat日志,最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。

转载于:https://my.oschina.net/u/3851633/blog/1858422

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值