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. charles 端口转发

    本文参考:charles 端口转发 端口转发 端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法.端口转发是转发一个网络端口从一个网络节点到另 ...

  2. Java8虚拟机(JVM)内存溢出实战

    前言 相信很多JAVA中高级的同学在面试的时候会经常碰到一个面试题 你是如何在工作中对JVM调优和排查定位问题的? 事实上,如果用户量不大的情况下,在你的代码还算正常的情况下,在工作中除非真正碰到与J ...

  3. IO流 - 字节输入输出流,文件的复制

    IO流 I:input - 输入(读取),eg:把硬盘的内容读取到内存 O: output - 输出(写入) eg:把内存中的东西写入硬盘保存 流:数字(字符/字节) 一般1个字符=2Byte,1By ...

  4. 2019年研究生数学建模D题《汽车行驶工况构建》解析

    正在整理...

  5. Django模板语言, 过滤器整理

    Django模板语言,过滤器整理 1. add {{ value|add:"2" }} 把add后的参数加给value: 处理时,过滤器首先会强制把两个值转换成Int类型. 如果强 ...

  6. Spring 梳理-el表达式和jstl

    JSP中有这么几种元素 1: Scriptlet <% ... %> 2: 声明元素 <%! ... %> 3: Java表达式 <%= ... %> 4: 指令元 ...

  7. iSCSI 网关管理 - Storage6

    iSCSI网关集成了Ceph存储和iSCSI标准,以提供一个高可用性(HA) iSCSI目标,该目标将RADOS块设备(RBD)映像导出为SCSI磁盘.iSCSI协议允许客户机 (initiator) ...

  8. 详解es6 class语法糖中constructor方法和super的作用

    大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5.由于类似的库层出不穷,最终还是在ECMAScript 6中 ...

  9. Openshift 部署第一个应用hello-openshift

    Openshift 部署第一个应用hello-openshift: cd /opt/ wget https://github.com/openshift/origin/releases/downloa ...

  10. Step ‘Publish JUnit test result report’ failed: No test report files were found问题解决

    1. 查看配置 2.路径设置错误,修改路径和path一致即可 修改后的测试报告路径 重新构建成功