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;
}
}

最新文章

  1. &amp;&amp;&amp;&amp;数组去重方法总结&amp;&amp;&amp;&amp;&amp;
  2. C# WinForm开发系列 - DataGridView
  3. javaScript中定义类或对象的五种方式
  4. 使用JDK自带jvisualvm监控tomcat
  5. MyBatis动态SQL语法
  6. SystemTimeToFileTime、FileTimeToLocalFileTime、LocalFileTimeToFileTime三函数的跨平台实现
  7. Linux Shell编程(4)——shell特殊字符(上)
  8. sql日期转换格式
  9. Linux下玩转Dota2
  10. (翻译) Android ListView 性能优化指南
  11. 重构手法之Replace Temp with Query(以查询取代临时变量)
  12. C++之标准输入输出
  13. tomcat和server安装和操作
  14. Android View体系(八)从源码解析View的layout和draw流程
  15. JAVA核心:内存、比较和Final
  16. tensorflow中run和eval的区别(转)
  17. JAVA-Eclipse中web-inf和meta-inf文件夹
  18. ubuntu源列表(清华,阿里,官方,选一即可)
  19. mssql注入指令
  20. Xcode解决“Implicit declaration of function &#39;XXX&#39; is invalid in C99” 警告或报错

热门文章

  1. charles 代理设置
  2. LoadRunner11.安装破解
  3. 通过python代码对域名ssl证书进行监控
  4. Django序列化&amp;django REST framework
  5. ubuntu13 eclipse菜单栏失效解决
  6. layDate——设置最大日期不能超过当前日期
  7. python爬虫添加请求头和请求主体
  8. js常用Matn函数的操练
  9. Mysql高手系列 - 第22篇:深入理解mysql索引原理,连载中
  10. 一篇文章教会你jQuery应用