美文网首页
day47-tomcat的基本应用

day47-tomcat的基本应用

作者: 江枍_a99e | 来源:发表于2019-10-08 10:46 被阅读0次

1.JVM基本介绍·

(1)什么是jvm
VM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
(2) JRE/JDK/JVM是什么关系?
JRE(JavaRuntimeEnvironment,Java运行环境),也就是Java平台。所有的Java 程序都要在JRE下才能运行。普通用户只需要运行已开发好的java程序,安装JRE即可。
JDK(Java Development Kit)是程序开发者用来来编译、调试java程序用的开发工具包。JDK的工具也是Java程序,也需要JRE才能运行。为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是 安装的一部分。所以,在JDK的安装目录下有一个名为jre的目录,用于存放JRE文件。
JVM(JavaVirtualMachine,Java虚拟机)是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支持与操作系统无关,实现跨平台。

2.tomcat与nginx的区别

nginx常用做静态内容服务和反向代理服务器,以及页面前端高并发服务器。适合做负载均衡,直面外来请求转发给后面的应用服务(tomcat什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西。大部分适用于静态资源文件的访问(图片,文件)
tomcat 更适合做部署jsp页面的项目。

3.tomcat安装配置启动

(1)yum安装配置启动

[root@web01 ~]# yum install java -y
[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    

(2)二进制安装配置启动

       jdk使用二进制
    tomcat使用二进制
    [root@es-node1 ~]# mkdir /soft/
    [root@es-node1 ~]# tar xf jdk-8u60-linux-x64.tar.gz -C /app/
    [root@es-node1 ~]# ln -s /soft/jdk1.8.0_60 /soft/jdk
    [root@es-node1 ~]# vim /etc/profile
    #...最后面添加...
    export JAVA_HOME=/app/jdk
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

    [root@es-node1 ~]# tar xf apache-tomcat-9.0.26.tar.gz -C /soft
    [root@es-node1 ~]# /soft/apache-tomcat-9.0.26/bin/startup.sh 

4.tomcat配置文件详解

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

5.Tomcat配置虚拟主机 ---> 一台服务器运行多个站点

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

无法启动:
(1)替换配置文件: pkill java 然后在启动
(2)配置文件写错
(3)虚拟主机是添加,不要修改
(4)context如果写了,一定要有对应的目录,不然整体就报错
/soft/tomcat/logs/catalina.out(日志文件)

6.Tomcat部署博客项目zrlog

域名: zrlog.oldxu.com:8080
站点目录: /code/zrlog <--ROOT
10.0.0.7 tomcat 端口 8080
10.0.0.51 mysql 端口 3306
(1)配置server.xml文件 ,新增在 engline

[root@web01 ~]# vim /soft/tomcat/conf/server.xml
     <!--zrlog站点-->
    <Host name="zrlog.oldxu.com"  appBase="/code/zrlog"
          unpackWARs="true" autoDeploy="true">

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

(2)创建站点目录,上传zrlog的war包

[root@web01 ~]# mkdir /code/zrlog
    [root@web01 ~]# cd /code/zrlog/
    [root@web01 zrlog]# rz ROOT.war    <---这个是zrlog的war包,名称就叫ROOT

(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.co

7.源码包-->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依赖)

8.配置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

9.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+" />

10.启用zrlog的基础认证 ---> zrlog.oldxu.com/admin 了解 使用Nginx替代


(1)zrlog的基础认证

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

(2)配置用户名密码,关联对应的角色(多个role不要使用相同用户)

[root@es-node1 tomcat]# vim /soft/tomcat/conf/tomcat-users.xml
<role rolename="zrlog_role"/>
<user username="tomcat" password="123456" roles="zrlog_role"/>

(3)重启tomcat

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

11.部署多节点Tomcat-->mysql

10.0.0.7   ---> 10.0.0.51
10.0.0.8   ---> 10.0.0.51

(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

(3).修改域名解析


12.部署多节点Tomcat-->NFS

10.0.0.7   ---> 10.0.0.51
10.0.0.8   ---> 10.0.0.51
                10.0.0.31

(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/
13.部署多节点Tomcat-->负载均衡
(1)配置文件
cd /etc/nginx/conf.d/
①vim proxy.zrlog.oldxu.com.conf
内容如下:
upstream zrlog{
server 172.16.1.7:8080;
server 172.16.1.8:8080;
}

        server {
            listen 80;
            server_name zrlog.oldxu.com;
        
            location / {
                proxy_pass http://zrlog;
                include proxy_params;
            }
        }
    ②vim proxy_params

内容如下:

            proxy_http_version 1.1;
            proxy_set_header Host \$http_host;
            proxy_set_header X-Real-IP \$remote_addr;
            proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
            proxy_connect_timeout 30;
            proxy_send_timeout 60;
            proxy_read_timeout 60;
            proxy_buffering on;
            proxy_buffer_size 32k;
            proxy_buffers 4 128k;

(2)检查语法
nginx -t
(3)重启nginx
systemctl restart nginx
(4)host劫持

相关文章

  • day47-tomcat的基本应用

    1.JVM基本介绍· (1)什么是jvmVM是Java Virtual Machine(Java虚拟机)的缩写,J...

  • Promise的基本应用

    Promise 对象是 JavaScript 的异步操作解决方案,为异步操作提供统一接口。它起到代理作用(prox...

  • Git的基本应用

    1.如何配置 Git 基本信息:git config 2.如何把文件增加到.gitignore里以忽略它 4.如何...

  • redis的基本应用

    redis的数据类型分为五种:字符型(string), 哈希(hash), 列表(lpush, rpush),无序...

  • RoboGuice的基本应用

    Roboguice是一个用于Android应用的依赖注入框架,使用Google官方的Guice库位极大地简化了A...

  • webpack的基本应用

    全局安装命令 全局安装的路径C:\Users\Web前端\AppData\Roaming\npm 本地安装命令 在...

  • Nessus的基本应用

    Nessus是一款扫面漏洞的软件,下面是一些简单的操作。 在打开linux之前先要打开终端在root用户下打出ip...

  • kafka的基本应用

    消息中间件的背景分析 场景分析 进程级别的异步处理 阻塞队列+线程池 应用程序级别的异步处理 通过第三方的消息中间...

  • List的基本应用

    import java.util.ArrayList; import java.util.Arrays; impo...

  • Flutter的基本应用

    如果你还没有搭建Flutter开发环境,请点击它。 下面是效果图 新手上路 }} 上面就是演示了,如何开始你的程序...

网友评论

      本文标题:day47-tomcat的基本应用

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