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安装配置启动

	[root@web01 ~]# yum install java -y

二进制安装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的概念
<!--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="tomcat.old.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>
​ <!--zrlog站点-->
<Host name="zrlog.old.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> <!--Tomcat默认站点-->
<Host name="jpress.old.com" appBase="/code/jpress"
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>
</Engine> </Service>

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

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



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


8.部署多节点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/

4.生成密码htpasswd -b -c /etc/nginx/auth_conf baozexu 123

upstream old{
server 172.16.1.7:8080;
server 172.16.1.8:8080;
}
server {
listen 80;
server_name zrlog.old.com;
location / {
proxy_pass http://old;
proxy_set_header Host $http_host;
auth_basic "baozexu";
auth_basic_user_file "/etc/nginx/auth_conf"; } }

tomcat的基本应用的更多相关文章

  1. Tomcat一个BUG造成CLOSE_WAIT

    之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...

  2. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  3. Tomcat shutdown执行后无法退出进程问题排查及解决

    问题定位及排查 上周无意中调试程序在Linux上ps -ef|grep tomcat发现有许多tomcat的进程,当时因为没有影响系统运行就没当回事.而且我内心总觉得这可能是tomcat像nginx一 ...

  4. 记一次tomcat线程创建异常调优:unable to create new native thread

    测试在进行一次性能测试的时候发现并发300个请求时出现了下面的异常: HTTP Status 500 - Handler processing failed; nested exception is ...

  5. Linux CentOS 配置Tomcat环境

    一.下载Tomcat 下载Tomcat方式也有两种,可以参考我的前一篇博文Linux CentOS配置JDK环境,这边就不再赘述. 二.在Linux处理Tomcat包 1.创建tomcat文件夹 mk ...

  6. 在Linux虚拟机下配置tomcat

    1.到Apache官网下载tomcat http://tomcat.apache.org/download-80.cgi 博主我下载的是tomcat8 博主的jdk是1.8 如果你们的jdk是1.7或 ...

  7. tomcat开发远程调试端口以及利用eclipse进行远程调试

    一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里:  SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...

  8. Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法

    有的项目引用了太多的jar包,或者反射生成了太多的类,异或有太多的常量池,就有可能会报java.lang.OutOfMemoryError: PermGen space的错误, 我们知道可以通过jvm ...

  9. mac下安装及配置tomcat

    mac下的软件不像windows下的程序那样写注册表,对于tomcat的安装来说,在mac下是名符其实的绿色软件,具体操作如下: 1.到 apache官方主页 下载完整 tar.gz文件包.(没有专门 ...

  10. 设置tomcat远程debug

    查看端口占用情况命令: netstat -tunlp |grep 8000 tomcat 启动远程debug: startup.sh 中的最后一行 exec "$PRGDIR"/& ...

随机推荐

  1. 在Dynamics CRM中自定义一个通用的查看编辑注释页面

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复162或者20151016可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 注释在CRM中的显示是比较特别, ...

  2. kali linux查看局域网下所有IP,并对指定IP实施局域网内攻击(断网,随时查看对方密码,上网痕迹等)

    首先我们打开我们熟悉的kali linux操作系统,利用指令: ifconfig 来确认本机的ip地址 确认了本机的ip地址之后,利用一下的指令查看局域网下所有ip: fping -g 本机IP地址/ ...

  3. TCP/IP:完全弄清OSI七层模型

    OSI七层背景概述 诞生于1983年,iso(国际标准委员会)设计并推出. 目的:实现网络行业的兼容性 OSI七层模型与TCP/IP相对应的层次: 一般来说,我们把上三层被称为应用层,下四层被称为数据 ...

  4. Centos7安装配置----1配置网络

    1.下载镜像安装,选择的是最小安装,设置root用户密码 (此处省略其中步骤,直到安装成功) 2.安装完成后重启,输入用户名密码进入系统 由于此时未配置网络,所以网卡什么的均未获取ip联网 输入ip ...

  5. Linux下迅速删除一个大文件夹

    rsync -av --delete /tmp/null/ ./        迅速删除大文件夹,如缓存 快速删除大目录(即大量文件)1.先建立一个空目录 mkdir /data/blank 2.用r ...

  6. C++学习二 vector的用法(使用sort对于vector排序)

    一.vector的介绍 vector是C++里面的一个容器,也是我们数学上面理解的向量,有一些比较常见的操作. 二.vector的定义 #include<vector> using nam ...

  7. [C7] Andrew Ng - Sequence Models

    About this Course This course will teach you how to build models for natural language, audio, and ot ...

  8. SpringMVC常用注解(三)

    一.@Controller .@RestController 和 @ControllerAdvice 1. @Controller @Controller 用于标记在一个类上,使用它标记的类就是一个S ...

  9. echarts使用------地图生成----省市地图的生成及其他相关细节调整

    为使用多种业务场景,百度echarts地图示例只有中国地图,那么在使用省市地图的时候,就需要我们使用省市的地图数据了 以下为陕西西安市的地图示例: 此页面引用echarts的js:http://ech ...

  10. 2019 SDN上机第二次作业

    2019 SDN上机第二次作业 1.利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名.交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 1. ...