动静分离
动态资源和静态资源
静态资源:
可以理解为前端的固定页面.这里面包含HTML,CSS,JS图片等等,不需要查数据库也不需要程序处理,直接就可以显示的页面,简单说静态资源就是将资源原封不动回应给用户 (HTML回应的是源代码,但是浏览器会翻译)
动态资源
动态资源:客户端请求的动态资源,先将请求交给web容器,这些资源不可以在客户端直接打开,需要在服务器运行,甚至需要连接数据库,数据库处理完之后交给web服务器,web服务器返回给客户端解析渲染,动态资源就是代码的执行结果
Nginx动静分离的原理是什么:
Nginx在配置文件中会通过正则表达式对客户端访问的URL进行匹配,如果满足动态页面匹配策略,则将请求交给动态页面服务器处理,如果正则表达式没有满足动态页面的匹配策略,交由静态页面服务器或者Nginx服务本身处理.
对于静态资源Nginx直接处理
对于动态资源Nginx通过反向代理将这部分请求转发给后端应用服务器处理
负载均衡
什么是负载均衡:通过网络将多个机器链接在一起,同时完成同一个工作.
如果有多个后端应用服务器,Nginx可以作为负载均衡器,将动态请求分发到不同的后端服务器上.
Nginx集中负载均衡方式
1.轮询:按照集群服务器数量进行1:1访问量处理
2.加权轮询:带有权重比的轮询
3.原地址哈希:根据客户端源地址进行哈希校验,哈希值不变的处理的服务器不变
4.最少连接:根据服务器的负载量进行判断,将请求分发给负载量较少的服务器
5.加权最少连接:有权重比值的最少连接,当负载量一致根据权重重定服务器
配置Nginx动静分离
Nginx虚拟web主机 一个Nginx服务上运行多个网站--基于域名的虚拟主机
vim /etc/nginx/nginx.conf
Nginx代理服务
代理服务
-
代理服务是一种网络服务,允许客户端通过中间服务器(即代理服务器)与目标服务器进行通信。代理服务器接收来自客户端的请求,然后将这些请求转发给目标服务器,再将目标服务器的响应返回给客户端。
-
Nginx作为代理服务器的优势
-
高性能:Nginx采用了异步非阻塞的事件驱动模型,能够处理大量的并发连接和请求,具有出色的性能和可扩展性。
-
稳定性:Nginx经过严格的测试和优化,具有极高的稳定性和可靠性,能够在各种复杂的网络环境中稳定运行。
-
易用性:Nginx的配置文件简洁明了,易于学习和使用。同时,Nginx提供了丰富的模块和指令,可以满足各种复杂的代理需求。
-
灵活性:Nginx可以作为正向代理服务器、反向代理服务器或负载均衡器使用,支持多种协议和扩展模块,具有极高的灵活性。
-
VMware虚拟机的三种模式--通过不同的vmnet实现
VMnet是VMware虚拟化软件中的虚拟网络组件,也可以称为虚拟交换机。作为虚拟网络的重要组成部分,虚拟交换机用于将其他网络组件连接在一起,包括虚拟网络适配器、虚拟DHCP服务器和NAT设备等,其工作方式类似于物理交换机。
-
网络地址转换模式(NAT)
工作原理:
NAT模式通过宿主机提供一个虚拟的NAT服务器,使虚拟机在对外访问时使用宿主机的IP地址。虚拟机内部的网络是一个私有的网络,与外部网络隔离,但可以通过NAT服务器访问外部网络。
-
仅主机模式(Host-Only)
工作原理:
仅主机模式创建了一个与物理网络隔离的虚拟网络,虚拟机只能与宿主机进行通信,无法访问外部网络。在这种模式下,宿主机和虚拟机之间构成了一个独立的虚拟局域网。
-
桥接模式(Bridged)
工作原理:
桥接模式将虚拟机的虚拟网卡直接连接到宿主机的物理网卡上,通过虚拟网桥进行通信。在这种模式下,虚拟机就像是物理网络中的一台独立机器,可以直接访问网络中的其他机器,同时也可以被其他机器访问。
过程叙述
1.如图:拥有AB两台web服务器 分别配置各自的IP地址(前提配置好防火墙.SElinux.yum仓库)
2.再给Nginx代理服务器proxy添加一张网卡vmnet(这些交换机用于虚拟机之间的通信以及虚拟机与宿主机或外部网络的通信) 所以需要两个交换机--一个用来与内部虚拟机之间通信 另一个用来与宿主机/外部网络通信 !!!添加硬件向导看day3笔记
而新添加的这个虚拟交换机为VMnet1(仅主机模式),因为模拟代理服务,新添加的虚拟交换机只需要与主机通信,不需要连接外部网络
3.部署后端web服务器集群:分别给AB部署Nginx服务
4.部署proxy代理服务器:集群的IP地址放在backend中
集群健康检查 --负载均衡方式
在华为云上部署项目:
一、准备工作
-
购买与启动云服务器:
-
登录华为云官网,选择合适的云服务器套餐(如2核4G等),进行购买并启动。
-
设置安全组,开放必要的端口(如80, 443, 3306等),确保后续可以访问服务器及数据库。
-
-
远程登录:(允许用户直接访问和管理云服务)
-
使用华为云自带的远程登录功能,或通过SSH客户端(如PuTTY、Xshell等)连接到云服务器。
-
首次登录可能需要重置密码或使用华为云提供的初始密码。
-
二、环境配置
-
操作系统选择:
-
根据项目需求选择合适的操作系统,如CentOS、Ubuntu等。
-
-
安装必要软件:
-
安装Java环境(如JDK 1.8),用于运行Java项目。
-
安装Web服务器(如Nginx、Apache),用于部署Web应用。
-
安装数据库(如MySQL、PostgreSQL),用于存储项目数据。
-
安装其他必要的中间件或框架(如Tomcat、Redis等)。
-
-
配置环境变量:
三.部署项目
在本次实验中:
结构:
-
配置JDK、MySQL等软件的环境变量,确保系统能够正确识别和使用这些软件。
-
上传项目文件:将项目文件(如war包、jar包等)上传到服务器。
-
部署项目:将项目文件部署到相应的服务器上,如Tomcat的webapps目录下。
-
启动服务:启动服务器上的服务,如Tomcat服务,使项目能够正常运行。
-
服务器地址:
部署数据库服务器 --在这个服务器里面也部署一下redis服务器
部署后端服务--在compile主机部署后端服务,将后端服务打成jar包发给后端服务器 ,下载jdk maven,然后要修改maven的配置,配置阿里云的镜像仓库 将我们打包好的项目上传至compile主机,归档好之后发给javaserver
部署前端服务器
Prometheus监控、RabbitMQ、MySQL备份及主从同步、分库分表
此链接到飞书,写了一些博主在学习过程中总结的简单的笔记,不包含Linux基础命令