1.JVM基本介绍

  1. JAVA编译型 ---> 编译
  2. C 编译型--->
  3. linux --->编译一次
  4. windows --->编译一次
  5. macos
  6. ubuntu
  7. 跨平台 移值型差
  8. 只需要将源代码进行一次编译 war,能够在多处运行。
  9. jvm虚拟机
  10. windows jvm --->war
  11. linux jvm --->war
  12. mac jvm --->war
  13. jvm 如何安装?
  14. jvm 需要 jre java运行环境
  15. 环境:
  16. jre: java运行环境 包含 jvm
  17. jdk: java开发环境 包含 jre
  18. 只想运行java代码,只需要jre即可
  19. 既想要运行环境,开发环境 jdk

2.Tomcat与Nginx区别

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

3.Tomcat安装配置启动

  1. 1.yum安装:
  2. [root@web01 ~]# yum install java -y
  3. 2.二进制安装tomcat
  4. [root@web01 ~]# mkdir /soft && cd /soft
  5. [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
  6. [root@web01 soft]# tar xf apache-tomcat-9.0.26.tar.gz
  7. [root@web01 soft]# ln -s /soft/apache-tomcat-9.0.26 /soft/tomcat
  8. [root@web01 soft]# /soft/tomcat/bin/startup.sh
  9. [root@web01 soft]# netstat -lntp|grep java
  10. tcp6 0 0 :::8009 :::* LISTEN 8500/java
  11. tcp6 0 0 :::8080 :::* LISTEN 8500/java
  12. tcp6 0 0 127.0.0.1:8005 :::* LISTEN 8500/java
  13. 二进制方式:
  14. jdk使用二进制
  15. tomcat使用二进制
  16. [root@es-node1 ~]# mkdir /soft/
  17. [root@es-node1 ~]# tar xf jdk-8u60-linux-x64.tar.gz -C /app/
  18. [root@es-node1 ~]# ln -s /soft/jdk1.8.0_60 /soft/jdk
  19. [root@es-node1 ~]# vim /etc/profile
  20. #...最后面添加...
  21. export JAVA_HOME=/app/jdk
  22. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
  23. export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
  24. [root@es-node1 ~]# tar xf apache-tomcat-9.0.26.tar.gz -C /soft
  25. [root@es-node1 ~]# /soft/apache-tomcat-9.0.26/bin/startup.sh

4.Tomcat配置文件详解

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

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

  1. [root@web01 soft]# vim /soft/tomcat/conf/server.xml
  2. <!--tomcat虚拟主机-->
  3. <Host name="tomcat1.cheng.com" appBase="/code1"
  4. unpackWARs="true" autoDeploy="true">
  5. <!--类似于nginxlocation path是访问的路径 ->映射 docBase是真实的路径-->
  6. <Context docBase="/code1/admin" path="/test" reloadable="true"/>
  7. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  8. prefix="tomcat1_access_log" suffix=".txt"
  9. pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  10. </Host>
  11. 无法启动原因:
  12. 1.替换配置文件: pkill java 然后在启动
  13. 2.配置文件写错
  14. 3.虚拟主机是添加,不要修改
  15. 4.context如果写了,一定要有对应的目录,不然整体就报错
  16. /soft/tomcat/logs/catalina.out

6.Tomcat部署博客项目zrlog

  1. 域名: zrlog.cheng.com:8080
  2. 站点目录: /code/zrlog <--ROOT目录
  3. 10.0.0.7 tomcat 端口 8080 10.0.0.51 mysql 端口 3306
  4. 1.配置server.xml文件 ,新增在 engline
  5. [root@web01 ~]# vim /soft/tomcat/conf/server.xml
  6. <!--zrlog站点-->
  7. <Host name="zrlog.cheng.com" appBase="/code/zrlog"
  8. unpackWARs="true" autoDeploy="true">
  9. <Va0lve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  10. prefix="zrlog_access_log" suffix=".txt"
  11. pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  12. </Host>
  13. 2.创建站点目录,上传zrlogwar
  14. [root@web01 ~]# mkdir /code/zrlog
  15. [root@web01 ~]# cd /code/zrlog/
  16. [root@web01 zrlog]# rz ROOT.war <---这个是zrlogwar包,名称就叫ROOT
  17. 3.重启Tomcat服务
  18. [root@web01 zrlog]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh && tail -f /soft/tomcat/logs/catalina.out
  19. 4.配置域名解析
  20. 5.172.16.1.51的数据库上,创建一个zrlog的库,配置授权访问用户
  21. [root@db01 ~]# mysql -uroot -p000000
  22. MariaDB [(none)]> create database zrlog charset utf8;
  23. <---此前配置过all用户,可以复用
  24. MariaDB [(none)]> grant all privileges on *.* to 'all'@'%' identified by 'oldxu.com';
  25. jeesns --社交

6.1Tomcat部署博客项目jpress

  1. 1.配置server.xml文件 ,新增在 engline
  2. <!--jpress博客-->
  3. <Host name="jpress.cheng.com" appBase="/code/jpress"
  4. unpackWARs="true" autoDeploy="true">
  5. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  6. prefix="jpress_access_log" suffix=".txt"
  7. pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  8. </Host>
  9. </Engine>
  10. 2.创建站点目录,上传jpresswar
  11. [root@web01 ~]# mkdir /code/jpress
  12. [root@web01 ~]# cd /code/jpress/
  13. [root@web01 jpress]# rz ROOT.war
  14. 3.重启Tomcat服务
  15. [root@web01 jpress]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh && tail -f /soft/tomcat/logs/catalina.out
  16. 4.配置域名劫持
  17. 5.172.16.1.51的数据库上,创建一个jpress的库,配置授权访问用户
  18. [root@db01 ~]# mysql -uroot -p000000
  19. MariaDB [(none)]> create database jpress charset utf8;
  20. <---此前配置过all用户,可以复用
  21. MariaDB [(none)]> grant all privileges on *.* to 'all'@'%' identified by 'oldxu.com';

7.源码包-->jar包--war包的关系?

  1. 源码包 --> 由开发人员编写的
  2. maven
  3. jar --> 源码包编译
  4. 无法独立运行, 需要被某个程序所依赖 mysql连接
  5. 可以独立运行, java -jar xx.jar 启动
  6. https://gitee.com/chejiangyi/dingding-sonar
  7. war --> 源码包编译, 可以直接放在tomcat中进行部署 (这种类型居多)
  8. 源码-->maven编译-->jar或者war
  9. war包直接放入tomcat即可运行, war在运行过程中需要依赖 jar
  10. jar 分为两种, 可独立运行(对外提供服务), 不可独立运行(被war依赖)

8.Tomcat配置基础认证 ---> 了解

  1. Tomcat如何开启 Server Status Host Manager页面
  2. 1.配置conf/tomcat-users.xml
  3. [root@web01 ~]# vim /soft/tomcat/conf/tomcat-users.xml
  4. <role rolename="manager-gui"/>
  5. <user username="tomcat" password="123456" roles="manager-gui"/>
  6. 2.如果访问还是403,是因为tomcat默认仅运行本地访问该管理页面,需要允许同网段主机访问
  7. [root@web01 ~]# ll /soft/tomcat/webapps/manager/
  8. [root@web01 ~]# ll /soft/tomcat/webapps/host-manager/
  9. [root@web01 ~]# vim /soft/tomcat/webapps/manager/META-INF/context.xml
  10. allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  11. #修改为
  12. 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替代

  1. 方式一:Nginx配置认证:
  2. server {
  3. listen 80;
  4. server_name zrlog.cheng.com;
  5. location / {
  6. proxy_pass http://127.0.0.1:8080;
  7. proxy_set_header Host $http_host;
  8. }
  9. location /admin {
  10. auth_basic "closed site";
  11. auth_basic_user_file conf/auth_conf;
  12. proxy_pass http://127.0.0.1:8080;
  13. proxy_set_header Host $http_host;
  14. }
  15. }
  16. 方式二:Tomcat认证
  17. [root@es-node1 tomcat]# vim /code/zrlog/ROOT/WEB-INF/web.xml
  18. <web-app>
  19. ...
  20. <security-constraint>
  21. <web-resource-collection>
  22. <web-resource-name>zrlog</web-resource-name>
  23. <url-pattern>/admin/*</url-pattern>
  24. </web-resource-collection>
  25. <auth-constraint>
  26. <role-name>zrlog_role</role-name>
  27. </auth-constraint>
  28. </security-constraint>
  29. <login-config>
  30. <auth-method>BASIC</auth-method>
  31. <realm-name>Default</realm-name>
  32. </login-config>
  33. ...
  34. </web-app>
  35. 2.配置用户名密码,关联对应的角色(多个role不要使用相同用户)
  36. [root@es-node1 tomcat]# vim /soft/tomcat/conf/tomcat-users.xml
  37. <role rolename="zrlog_role"/>
  38. <user username="tomcat" password="123456" roles="zrlog_role"/>
  39. 3.重启tomcat
  40. [root@es-node1 ~]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh
  41. 4.浏览器测试验证

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

  1. ##环境: 10.0.0.7 ---> 10.0.0.51
  2. 10.0.0.8 ---> 10.0.0.51
  3. 1.安装jdk
  4. [root@web02 ~]# yum install java -y
  5. 2.安装tomcat 部署代码 (scp)
  6. ---->在web01上操作
  7. [root@web01 ~]# scp -rp /soft root@172.16.1.8:/
  8. [root@web01 ~]# scp -rp /code/zrlog root@172.16.1.8:/code/
  9. web02上操作>>>
  10. [root@web02 soft]# rm -rf /soft/tomcat/
  11. [root@web02 soft]# ln -s /soft/apache-tomcat-9.0.26 /soft/tomcat
  12. [root@web02 soft]# /soft/tomcat/bin/startup.sh
  13. 3.修改域名解析

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

  1. 10.0.0.7 ---> 10.0.0.51
  2. 10.0.0.8 ---> 10.0.0.51
  3. 10.0.0.31
  4. 1.安装NFS
  5. [root@nfs ~]# groupadd -g 666 www
  6. [root@nfs ~]# useradd -u666 -g666 www
  7. [root@nfs ~]# yum install nfs-utils -y
  8. [root@nfs ~]# cat /etc/exports
  9. /data/zrlog 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
  10. [root@nfs ~]# mkdir /data/zrlog
  11. [root@nfs ~]# systemctl restart nfs
  12. 2.找到图片资源 推送图片资源至NFS
  13. [root@web01 ~]# scp -rp /code/zrlog/ROOT/attached/* root@172.16.1.31:/data/zrlog/
  14. [root@nfs ~]# chown -R www.www /data/zrlog/ ---->>>重新授权
  15. 3.多节点挂载
  16. [root@web01 attached]# mount -t nfs 172.16.1.31:/data/zrlog /code/zrlog/ROOT/attached/
  17. [root@web02 soft]# mount -t nfs 172.16.1.31:/data/zrlog /code/zrlog/ROOT/attached/

12.Nginx配置代理

  1. [root@lb01 conf.d]# cat proxy_zrlog.cheng.com.conf
  2. upstream zrlog {
  3. server 172.16.1.7:8080;
  4. server 172.16.1.8:8080;
  5. }
  6. server {
  7. listen 80;
  8. server_name zrlog.cheng.com;
  9. location / {
  10. proxy_pass http://zrlog;
  11. include proxy_params;
  12. }
  13. }

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. Linux MySQL-5.7 root初始密码修改

    操作系统为centos7 64 1.修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2. ...

  2. 24 (OC)* 加密

    一 .MD5加密 MD5加密是最常用的加密方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码. MD5主要特点是 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是 ...

  3. C#基础知识总结(一)

    1.什么是匿名函数?匿名函数,就是没有名字的函数,或者说就是一组代码块,他的参数只有在方法块内有效,可以有效的减小创建方法事所需要的系统开销 2.lambda表达式是什么?lambda表达式 就是一个 ...

  4. FourAndSix2 靶机渗透

    0x01 简介 FourAndSix2是易受攻击的一个靶机,主要任务是通过入侵进入到目标靶机系统然后提权,并在root目录中并读取flag.tx信息 FourAndSix2.镜像下载地址: https ...

  5. [Linux] CentOS安装GNOME时,fwupdate-efi-12-5.el7.centos.x86_64 conflicts with grub2-common-1:2.02-0.65.el7.centos.noarch

    参考文章:https://createdpro.com/a/100006 该问题源于文件的版本冲突: grub2-common包的冲突,所以要将该包使用yum update grub2-commonn ...

  6. C#使用Oxyplot绘制监控界面

    C#中可选的绘图工具有很多,除了Oxyplot还有DynamicDataDisplay(已经改名为InteractiveDataDisplay)等等.不过由于笔者这里存在一些环境上的特殊要求,.Net ...

  7. Spring MVC-从零开始-view-向页面传递data(ModelAndView)

    1.applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans ...

  8. poj-2232 New Stone-Forfex-Cloth Game 思维题

    Acm is a clever boy, and he developed a new game form the old Stone-Forfex-Cloth game. In this game, ...

  9. idea 设置jvm参数

    使用IDEA进行JVM参数设置: Run->Edit Configurations... 进入之后: 之后就可以运行代码测试,可以看到控制台打印的信息: 说明: -Xms:20M 初始化堆内存大 ...

  10. volatile 关键字的作用

    简介Java 语言提供了一种稍弱的同步机制,即 volatile 变量,用来确保将变量的更新操作通知到其他线程.volatile 变量具备两种特性:变量可见性.禁止重排序. 作为同步锁在访问 vola ...