第9周作业

1. 总结 nginx反向代理及https安全加密。

nginx反向代理:

反向代理指定的是通过nginx代理外网用户的请求到内部的指定的服务器中,并将数据返回给用户的一个种方式。

反向代理:reverse proxy,指的是代理外网用户的请求到内部的指定的服务器,并将数据返回给用户的一种方式。

Nginx除了可以在企业提供高性能的web服务器之外,另外还可以将nginx本身不具备的请求通过某种预定的协议转发至其他服务器处理,不同协议就是Nginx服务器与其他服务器的通信的一种规范,主要在不同的场景使用以下模块实现不同功能。

https安全加密:

HTTPS能够加密信息,加密数据以保证数据的安全,web网站登录页面通常会使用https加密传输的,以避免敏感信息被第三方获取,所以很多银行的网站或者电子邮件等等安全级别较高的服务都会采用HTTPS协议。

HTTPS其实是由两部分组成,HTTP+SSL/TLS,也就是HTTP上又加了一层处理加密信息的模块,服务器和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

2. 完成nginx实现LNMP架构wordpress应用

一台LNP服务器

一台带有mysql或者redis的服务器

1.编译nginx的过程不介绍了直接开始编译后的步骤:

Vim /etc/nginx/conf/nginx.conf

再结尾处添加,让nginx识别conf.d/*.conf所有配置文件:

include /etc/nginx/conf.d/*.conf;


3. 总结 JumpServer管理配置

JumpServer 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0开源协议,是符合4A的专业运维审计系统。为互联网企业提了认证,授权,审计,自动化运维等功能。JumpServer 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API ,各机房部署登录节点,可横向扩展、无并发访问限制。 

安装与部署:

JumpServer的安装可以使用官方提供的安装脚本,支持多种操作系统。安装完成后,需要进行基本的配置,如数据库连接、管理员账号等。

用户和权限管理:

JumpServer通过用户和权限管理来控制对服务器的访问。管理员可以创建用户、组织结构、角色,然后将用户分配给角色,从而实现灵活的权限控制。

资产管理:

JumpServer可以集中管理服务器和其他设备的资产信息,包括主机名、IP地址、SSH密钥等。这些资产信息可以方便地与用户和权限进行关联。

审计日志:

JumpServer提供审计日志功能,记录用户的操作行为,包括登录、命令执行等。审计日志对于追踪操作历史、安全审计和合规性方面非常重要。

认证与授权:

JumpServer支持多种认证方式,包括用户名密码、SSH密钥、LDAP等。同时,可以通过角色进行细粒度的授权,确保每个用户只能访问其具备权限的资产。
 


4. 总结 tomcat实现多虚拟机

多虚拟主机配置说明

  • name必须是主机名,用主机名来匹配
  • appBase当前主机的网页根目录,是相对于$CATALINA_HOME,也可以使用绝对路径
  • unpackWARs是否自动解压war格式
  • autoDeploy热部署,自动加载并运行应用

打开配置文件vim /usr/local/tomcat/conf/server.xml
 
将末尾处
 
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
 </Host>
 
#虚拟机主机模块
 
在复制一份添加到下面就成另外的主机了
 
 <Host name="m.magedu.org"  appBase="/data/m"
            unpackWARs="true" autoDeploy="true">
</Host>
 
在指定的文件中/data/m 确保有一个ROOT文件,里面带有index.html的网站文件,这样才能正常的指定路径读取文件否则无法读取
 
mkdir -p /data/m/ROOT
 
重启服务:
 
systemctl restart tomcat.service
 
此处为tomcat默认网站,外加一个m.magedu.org的网站

5. 总结 tomcat定制访问日志格式和反向代理tomcat

tomcat定制访问日志格式

tomcat实现多虚拟主机

vim conf/server.xml

vim /etc/hosts

 实现反向代理

vim /etc/nginx/nginx.conf


6. 完成 tomcat实现MSM集群

修改t1和t2主机的conf/server.xml

修该t1和t2主机的应用的web.xml文件

[root@localhost WEB-INF]# ll
total 4
-rw-r----- 1 tomcat tomcat 1227 Feb 22  2022 web.xml
[root@t1 ROOT]# cp -a /usr/local/tomcat/webapps/ROOT/WEB-INF/ /data/webapps/ROOT/
[root@t1 ROOT]# tree /data/webapps/ROOT/
/data/webapps/ROOT/
└── WEB-INF
    └── web.xml
 
[root@t1 ROOT]# vim WEB-INF/web.xml
 </description>
<distributable/>    #倒数第二行
</web-app>
 
#权限
[root@t1 ROOT]# ll WEB-INF/web.xml 
-rw-r----- 1 tomcat tomcat 1243 Nov 25 22:12 WEB-INF/web.xml
 
 
[root@t1 ROOT]# systemctl restart tomcat.service
 
7. 总结 JVM垃圾回收算法和分代

JVM垃圾回收算法:
标记-清除算法(Mark and Sweep):

标记阶段: 从根节点开始标记所有可达对象。
清除阶段: 清除所有未标记的对象,释放它们的内存。
缺点:会产生内存碎片。
 
复制算法(Copying):
 将堆分为两块,每次只使用其中一块。当一块内存用尽时,将存活对象复制到另一块中,然后清理当前块。
适用于新生代的垃圾回收,因为新生代的对象生命周期较短。


标记-整理算法(Mark and Compact):
 在标记阶段,标记所有可达对象。
在整理阶段,将所有存活对象向一端移动,然后清理边界外的内存。
减少了内存碎片的产生。
 
分代算法:
 将堆分为新生代(Young Generation)、老年代(Old Generation)和永久代(或元空间,取决于JVM版本)。
新生代使用复制算法,老年代使用标记-整理算法。
 
JVM分代策略:
新生代(Young Generation):
 大部分对象的生命周期较短,使用复制算法。
分为Eden区和两个Survivor区(S0和S1)。
 
老年代(Old Generation):
 存放经过多次垃圾回收仍然存活的对象。
使用标记-整理算法。


永久代/元空间(Permanent Generation/Metaspace):
 存放类的元数据,JVM 8之前使用永久代,JVM 8及之后使用元空间。
不同于堆的分代,不再受到固定大小的限制,而是根据应用程序的需求动态调整。
 
优缺点:
新生代:
 优点:适应对象短生命周期,提高垃圾回收效率。
缺点:可能导致过早晋升(promotion)到老年代。
 
老年代:
 优点:适应长生命周期的对象。
缺点:老年代的垃圾回收相对复杂,因为存活对象较多。
 
分代策略:
 优点:根据对象的生命周期采用不同的垃圾回收算法,提高整体垃圾回收效率。
缺点:需要在新生代和老年代之间进行对象移动,可能带来一些性能开销。


9. 总结 tomcat性能优化方式及java源码编译 
常用属性:
connectionTimeout :连接超时时长,单位ms
maxThreads:最大线程数,默认200
minSpareThreads:最小空闲线程数
maxSpareThreads:最大空闲线程数
acceptCount:当启动线程满了之后,等待队列的最大长度,默认100
URIEncoding:URI 地址编码格式,建议使用 UTF-8
enableLookups:是否启用客户端主机名的DNS反向解析,缺省禁用,建议禁用,就使用客户端IP就行
compression:是否启用传输压缩机制,建议 "on",CPU和流量的平衡
compressionMinSize:启用压缩传输的数据流最小值,单位是字节
compressableMimeType:定义启用压缩功能的MIME类型text/html, text/xml, text/css,text/javascript

java源码编译

安装java就需要按照openjdk-8-jdk
 

 
生成变量文件:

 镜像加速

vim /usr/local/maven/conf/settings.xml

编译:(比较进入到编译软件的目录下看到pom.xml才可以编译)
mvn clean package -Dmaven.test.skip=ture
编译 清理之前的痕迹 打包  -并且忽略测试代码的编译
 
编译完成只会生成target目录,里面的带有jar的包就是编译完成的包
cp target/spring-boot-helloworld-0.9.0-SNAPSHOT.jar /opt/
cd /opt/
 
java -jar spring-boot-helloworld-0.9.0-SNAPSHOT.jar
 

  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值