美文网首页
12.tomcat介绍

12.tomcat介绍

作者: 杨小倪 | 来源:发表于2019-09-28 15:27 被阅读0次

第四十七天 tomcat

1.JVM基本介绍

JAVA业务都是运行在JAVA虚拟机上的,JAVA虚拟机简称JVM(JAVA Virtual Machine)

2.为什么要使用JVM

JAVA 属于编译型语言,跨平台移植性差,借助JVM只需要将源代码进行一次编译,就能够在多处运行

3.为什么要安装jdk而不是jre

jdk是java的开发环境,包含了jre

而jre只是运行环境,他只包含了JVM,所以安装jdk是最好也是最方便的方法

4.Tomcat与nginx的区别

Tomcat是基于JAVA开发的一个web服务器软件,和Nginx类似

Tomcat能直接解析jsp代码,以及静态资源

但是,Tomcat解析静态资源比较困难,所以,一般我们使用Nginx+Tomcat

5.Tomcat目录介绍

bin             #主要包含启动和关闭tomcat脚本,以及依赖的jar文件
conf            #tomcat配置文件目录
lib             #tomcat运行需要加载的jar包
logs            #tomcat运行过程中产生的数据
temp            #tomcat存放临时文件
webapps         #tomcat默认站点目录
work            #tomcat运行时产生的缓存文件

主要的配置文件 server.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--关闭tomcat,可以通过8005调用的方式关闭-->
<Server port="8005" shutdown="SHUTDOWN">

  <!--监听器,跳过-->
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <!--基本的base认证, conf/tomcat-users.xml-->
  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <Service name="Catalina">

    <!--http连接器-->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

   <!--apache使用mod_jk模块时使用的ajp协议-->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <!--引擎-->
    <Engine name="Catalina" defaultHost="localhost">

   <!-- cluter是tomcatsession共享的一种方式
   <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
   -->

      <!--调用base认证-->
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <!--Tomcat默认站点-->
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

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

      <!--tomcat虚拟主机-->
      <Host name="tomcat1.oldxu.com"  appBase="/code1"
            unpackWARs="true" autoDeploy="true">

      <!--类似于nginx的location  path是访问的路径 ->映射 docBase是真实的路径-->
      <Context docBase="/code1/admin" path="/test" reloadable="true"/>  

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="tomcat1_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>

    </Engine>
  </Service>
</Server>

配置文件详解

一个server表示一个tomcat示例
一个server中包含了多个Connector连接器,Connector的主要功能是接受、响应用户请求
server的作用是:将Connector关联至engine(catalina引擎)
一个host就是一个站点,类似于Nginx多站点
context类似于Nginx中location的概念

1569592379816.png

tomcat请求过程

用户发出一个请求,如 http://tomcat.oldxu.com:8080/index.jsp

Connector发现是http/1.1协议,而且是8080端口,于是就把请求接收后交给符合条件的Engine

Engine通过请求中的主机名tmocat.oldxu.com 查找满足的虚拟主机(HOST)

找到后,就去此虚拟主机指定的appBase(代码存放目录)最后将解析产生的结果返回给用户

6.Tomcat安装配置启动

1.先安装JAVA    #tomcat 依赖java环境 
yum install java -y

2.二进制安装Tomcat
[root@web01 ~]# mkdir /soft && cd /soft
[root@web01 soft]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.26/bin/apache-tomcat-9.0.26.tar.gz
[root@web01 soft]# tar xf apache-tomcat-9.0.26.tar.gz 
[root@web01 soft]# ln -s /soft/apache-tomcat-9.0.26 /soft/tomcat
[root@web01 soft]# /soft/tomcat/bin/startup.sh
[root@web01 soft]# netstat -lntp|grep java
tcp6       0      0 :::8009            :::*        LISTEN      8500/java           
tcp6       0      0 :::8080            :::*        LISTEN      8500/java           
tcp6       0      0 127.0.0.1:8005     :::*        LISTEN      8500/java    

3.重启Tomcat服务
    [root@web01 zrlog]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh && tail -f /soft/tomcat/logs/catalina.out

4.配置域名劫持
    
    
5.在172.16.1.51的数据库上,创建一个zrlog的库,配置授权访问用户
    [root@db01 ~]# mysql -uroot -poldxu.com
    MariaDB [(none)]> create database zrlog charset utf8;
        <---此前配置过all用户,可以复用
    MariaDB [(none)]> grant all privileges on *.* to 'all'@'%' identified by 'oldxu.com';
    
    
    jeesns  --社交
    jpress  --博客        (群里-->新增Host -->新增站点目录--->jpress.war修改为ROOT.war)
    zrlog   --博客

源码包——jar包——war包的关系

源码包  -->  由开发人员编写的

    maven

jar     -->  源码包编译
            无法独立运行, 需要被某个程序所依赖    mysql连接
            可以独立运行, java -jar xx.jar 启动
                https://gitee.com/chejiangyi/dingding-sonar

war     -->  源码包编译, 可以直接放在tomcat中进行部署  (这种类型居多)

源码-->maven编译-->jar或者war包
war包直接放入tomcat即可运行, war在运行过程中需要依赖 jar包
jar包 分为两种,   可独立运行(对外提供服务),    不可独立运行(被war依赖)

增加一个HOST jpress

1.配置conf/server.xml 增加一个Host
        <!--jpress站点-->
      <Host name="jpress.oldxu.com"  appBase="/code/jpress"
            unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="jpress_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>


2.上传代码
[root@web01 ~]# mkdir /code/jpress && cd /code/jpress
[root@web01 jpress]# rz jpress.war
[root@web01 jpress]# mv jpress.war ROOT.war

3.重启Tomcat
[root@web01 jpress]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh && tail -f /soft/tomcat/logs/catalina.out

7.Tomcat配置基础认证

如何开启 Server Status  Host Manager页面
    1.配置conf/tomcat-users.xml
        <role rolename="manager-gui"/>
        <user username="tomcat" password="123456" roles="manager-gui"/>


    2.如果访问还是403,是因为tomcat默认仅运行本地访问该管理页面,需要允许同网段主机访问
        [root@web01 ~]# ll /soft/tomcat/webapps/manager/
        [root@web01 ~]# ll /soft/tomcat/webapps/host-manager/
        
        [root@es-node1 tomcat]# vim 项目目录下/META-INF/context.xml
        allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
        #修改为
        allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10\.0\.0\.\d+" />
--------------------------------------------------------------------------
3.启用zrlog的基础认证 ---> zrlog.oldxu.com/admin     了解   使用Nginx替代
--------------------------------------------------------------------------
[root@es-node1 tomcat]# vim /code/zrlog/ROOT/WEB-INF/web.xml
<web-app>
...
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>zrlog</web-resource-name>
            <url-pattern>/admin/*</url-pattern>
        </web-resource-collection>
    
        <auth-constraint>
            <role-name>zrlog_role</role-name>
        </auth-constraint>
    </security-constraint>
    
    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>Default</realm-name>
    </login-config>
...
</web-app>


#配置用户名密码,关联对应的角色(多个role不要使用相同用户)
[root@es-node1 tomcat]# vim /soft/tomcat/conf/tomcat-users.xml
<role rolename="zrlog_role"/>
<user username="tomcat" password="123456" roles="zrlog_role"/>

#重启tomcat
[root@es-node1 ~]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh

8.部署多节点

MySQL

1.安装jdk
[root@web02 ~]# yum install java -y

2.安装tomcat  部署代码  (scp)

    在web01上操作
[root@web01 ~]# scp -rp /soft root@172.16.1.8:/
[root@web01 ~]# scp -rp /code/zrlog root@172.16.1.8:/code/

    在web02上操作
[root@web02 soft]# rm -rf /soft/tomcat/
[root@web02 soft]# ln -s /soft/apache-tomcat-9.0.26 /soft/tomcat
[root@web02 soft]# /soft/tomcat/bin/startup.sh

NFS

1.安装NFS
[root@nfs ~]# groupadd -g 666 www
[root@nfs ~]# useradd -u666 -g666 www
[root@nfs ~]# yum install nfs-utils -y
[root@nfs ~]# cat /etc/exports
/data/zrlog 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
[root@nfs ~]# mkdir /data/zrlog
[root@nfs ~]# systemctl restart nfs

2.找到图片资源   推送图片资源至NFS
[root@web01 ~]# scp -rp /code/zrlog/ROOT/attached/* root@172.16.1.31:/data/zrlog/
[root@nfs ~]# chown -R www.www /data/zrlog/         #重新授权

3.多节点挂载   
# mount -t nfs 172.16.1.31:/data/zrlog/ /code/zrlog/ROOT/attached/

相关文章

  • 12.tomcat介绍

    第四十七天 tomcat 1.JVM基本介绍 JAVA业务都是运行在JAVA虚拟机上的,JAVA虚拟机简称JVM(...

  • Runtime介绍---术语介绍

    1. 什么是Runtime Runtime又叫运行时,是一套C语言的API。 我们平时编写的OC代码,底层都是基于...

  • 介绍

    万物终有一天会消失殆尽,诸神出卖黎明,光明为黑暗所湮灭,日月皆痕,海潮鸣泣,幼雏嚎啕,生灵涂炭。 托里奥世纪第20...

  • 介绍😊

    大家好,我是beth,初入简书,不邀自来,还请各位见谅! 先说说我是怎么想着来的吧?这不是刚过了一个寒假嘛...

  • 介绍

    在这个世界上还有三个家族他们不受各个国家联合国管。但他们身上有着使命分别是帝国家族曲国家族圣国家族。他们隐藏在一个...

  • 介绍

    云轩:主角,星罗帝国的二皇子。从小就不能练气,被人们称为废物。直到12岁的时候,自己的武魂觉醒才能练气,双...

  • 介绍

    万花阁 神秘至极的组织,亦正亦邪。万花阁的人行动隐秘,至今未被发现所在地。听说组成成员均以花来命名。所到之处,皆留...

  • 介绍

    此书命曰元.八洲传。属九洲四传第二部。第一部,上古往事。上古往事乃元八洲传外传。前两部为战胜心魔,而第三部,大梦...

  • 介绍

    千肆篇 7月的天气燥热,但在红杏阁里这份燥热就别有一番风味。漫天的胭脂水粉的香味变成了调味剂,女人们千姿百媚,在...

  • 介绍

    该文集属于收录文集,里面的内容不全是本人创作,有收录个人喜欢的内容。 *(偏个人向)

网友评论

      本文标题:12.tomcat介绍

      本文链接:https://www.haomeiwen.com/subject/vsctpctx.html