1.JVM基本介绍

JAVA编译型 ---> 编译
C 编译型--->
linux --->编译一次
windows --->编译一次
macos
ubuntu
跨平台 移值型差 只需要将源代码进行一次编译 war,能够在多处运行。
jvm虚拟机 windows jvm --->war
linux jvm --->war
mac jvm --->war jvm 如何安装?
jvm 需要 jre java运行环境 环境:
jre: java运行环境 包含 jvm
jdk: java开发环境 包含 jre 只想运行java代码,只需要jre即可
既想要运行环境,开发环境 jdk

2.Tomcat与Nginx区别

tomcat
基于java开发一个web服务器软件, 和nginx类似.
tomcat能直接解析jsp代码,以及静态资源.
nginx + tomcat

3.Tomcat安装配置启动

1.yum安装:
[root@web01 ~]# 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 二进制方式:
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配置虚拟主机 ---> 一台服务器运行多个站点

[root@web01 soft]# vim /soft/tomcat/conf/server.xml
<!--tomcat虚拟主机-->
<Host name="tomcat1.cheng.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.cheng.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.cheng.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 -p000000
MariaDB [(none)]> create database zrlog charset utf8;
<---此前配置过all用户,可以复用
MariaDB [(none)]> grant all privileges on *.* to 'all'@'%' identified by 'oldxu.com'; jeesns --社交

6.1Tomcat部署博客项目jpress

1.配置server.xml文件 ,新增在 engline
<!--jpress博客-->
<Host name="jpress.cheng.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> </Engine> 2.创建站点目录,上传jpress的war包
[root@web01 ~]# mkdir /code/jpress
[root@web01 ~]# cd /code/jpress/
[root@web01 jpress]# rz ROOT.war 3.重启Tomcat服务
[root@web01 jpress]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh && tail -f /soft/tomcat/logs/catalina.out 4.配置域名劫持
5.在172.16.1.51的数据库上,创建一个jpress的库,配置授权访问用户
[root@db01 ~]# mysql -uroot -p000000
MariaDB [(none)]> create database jpress charset utf8;
<---此前配置过all用户,可以复用
MariaDB [(none)]> grant all privileges on *.* to 'all'@'%' identified by 'oldxu.com';

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.Tomcat配置基础认证 ---> 了解

Tomcat如何开启 Server Status  Host Manager页面
1.配置conf/tomcat-users.xml
[root@web01 ~]# vim /soft/tomcat/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@web01 ~]# vim /soft/tomcat/webapps/manager/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+" />



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

方式一:Nginx配置认证:
server {
listen 80;
server_name zrlog.cheng.com; location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
} location /admin {
auth_basic "closed site";
auth_basic_user_file conf/auth_conf;
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
}
} 方式二:Tomcat认证
[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 4.浏览器测试验证

10.部署多节点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.修改域名解析

11.部署多节点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.多节点挂载
[root@web01 attached]# mount -t nfs 172.16.1.31:/data/zrlog /code/zrlog/ROOT/attached/
[root@web02 soft]# mount -t nfs 172.16.1.31:/data/zrlog /code/zrlog/ROOT/attached/

12.Nginx配置代理

[root@lb01 conf.d]# cat proxy_zrlog.cheng.com.conf
upstream zrlog {
server 172.16.1.7:8080;
server 172.16.1.8:8080;
} server {
listen 80;
server_name zrlog.cheng.com; location / {
proxy_pass http://zrlog;
include proxy_params;
}
}

18.Tomcat基本应用的更多相关文章

  1. 18.Tomcat部署及优化

    Tomcat部署及优化 目录 Tomcat部署及优化 Tomcat简介 Tomcat核心组件 Web容器 什么是 servlet? 什么是 JSP? Container 结构分析 Tomcat 请求过 ...

  2. 【Tomcat 6.0官方文档翻译】—— 简介

    Tomcat作为使用最多的web容器,研究其原理过程,对掌握java web开发有很重要的影响. 因此下定决心,从官方文档入手,好好学学web相关的知识. 介绍     本篇是Apache Tomca ...

  3. 通过Eclipse3.1以上启动Tomcat访问不到tomcat管理界面的问题(转载)

    通过Eclipse插件启动Tomcat的问题 默认分类   2009-10-23 15:54   阅读118   评论0   字号: 大  中  小 目前在通过Eclipse中插件启动Tomcat时遇 ...

  4. The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:

    今天下载Windows安装版的tomcat5.5,安装完以后启动时候出现: The Apache Tomcat Native library which allows optimal performa ...

  5. 高并发场景 LVS 安装及高可用实现

    1.1 负载均衡介绍 1.1.1 负载均衡的妙用 负载均衡(Load Balance)集群提供了一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据处理能力.提高网 ...

  6. SpringBoot2.0 Actuator 监控参数说明

    主要内容更 监控参数说明 Maven坐标 <dependency> <groupId>org.springframework.boot</groupId> < ...

  7. 来不及解释!Linux常用命令大全,先收藏再说

    摘要:Linux常用命令,很适合你的. 一提到操作系统,我们首先想到的就是windows和Linux.Windows以直观的可视化的方式操作,特别适合在桌面端PC上操作执行相应的软件.相比较Windo ...

  8. SprinMvc快速入门

    1.spring mvc Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架. 查看官方文档:https://docs.spring.io/sp ...

  9. 监控框架 - prometheus - 参数指标

    基于SpringBoot2.0+ Actuator metrics的监控(基于Oracle JDK9,G1) 引言 SpringBoot2在spring-boot-actuator中引入了microm ...

随机推荐

  1. mybatis源码专题(2)--------一起来看下使用mybatis框架的insert语句的源码执行流程吧

    本文是作者原创,版权归作者所有.若要转载,请注明出处.本文以简单的insert语句为例 1.mybatis的底层是jdbc操作,我们先来回顾一下insert语句的执行流程,如下 执行完后,我们看下数据 ...

  2. Spring boot 自定义banner的在线制作

    目前工作不是很忙,利用闲暇的时间,在给自己不断地充电,提升自己的技术实力. 目前在做一个基于Spring Boot2.x+webmagic+quartz的爬虫项目[hotDog]https://git ...

  3. 使用Spring中的PropertyPlaceholderConfigurer读取文件

    目录 一. 简介 二. XML 方式 三. Java 编码方式 一. 简介 大型项目中,我们往往会对我们的系统的配置信息进行统一管理,一般做法是将配置信息配置与一个cfg.properties 的文件 ...

  4. Mysql学习笔记整理之选用B+tree结构

    为什么mysql不使用平衡二叉树? 数据处的深度决定着他的IO操作次数,IO操作耗时大 每一个磁盘块保存的数据量太小 B+Tree和B-Tree的区别? B+树几点关键字搜索采用闭合区间 B+树非叶节 ...

  5. 解决commBind: Cannot bind socket FD 18 to [::1]: (99) Cannot assign requested address squid

    最近玩squid主要是为了爬虫代理,但是使用docker搭建squid的时候发现,docker一直默认使用的 ipv6,但是squid使用ipv4,导致无法绑定,出现commBind: Cannot ...

  6. 使用Spreadsheet导出表格时,设置样式

    $spreadsheet = new Spreadsheet();// 初始化         $spreadsheet->createSheet();// 添加一个sheet          ...

  7. 环境搭建-Hadoop集群搭建

    环境搭建-Hadoop集群搭建 写在前面,前面我们快速搭建好了centos的集群环境,接下来,我们就来开始hadoop的集群的搭建工作 实验环境 Hadoop版本:CDH 5.7.0 这里,我想说一下 ...

  8. Weblogic任意文件上传漏洞(CVE-2018-2894)复现

    使用docker搭建漏洞测试环境 micr067@test:~/vulhub/weblogic/CVE-2018-2894$ sudo docker-compose build weblogic us ...

  9. 【django】form

    form 组件组要功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 1.创建Form类时,主要涉及到 [字段] 和 [插件],字段用于 ...

  10. ReactNative实现GridView

    ReactNative内置了ListView组件但是没有类似GridView这样的组件.利用一些已经有的属性是可以实现GridView的,利用ContentContainerStyle的属性然后配合样 ...