服务器目录
.
/etc 配置文件
/bin 就是常用命令
/home 用户文件的根目录 相当于win的我的文档
/usr 额外安装的linux软件
/srv 一般是我们自己创建的 表示服务 阿里云自带一个空的srv目录
网络
所谓网络 本质就是共享数据
起初 主机都是单机的
之所以叫计算机
是因为最早之前只能用来计算
局域网
一个主机可以访问另一个主机了
它们互相连接 组成了局域网
互联网
再发展就是互联网
但本质上还是一个主机和另一个主机的连接数据交换

客户端和服务端
再后来 衍生出来用户和服务
客户端和服务端的概念
主机有很多操作系统:
* windoms利用可视化捕获一大批客户端用户
* linux利用高效捕获了服务端的市场
客户端和服务端跟操作系统无关的 每个操作系统都可作为客户端和服务端
所以服务器的定义就是: 接受请求并返回数据的主机

那么就有人给这些主机开发服务器软件
服务器软件就是:处理请求和响应的软件,一般服务器都会存在服务器软件用来提供接受请求并响应
很著名的就是Tomcat
(所有的数据库其本质也是自带了服务器功能,主要功能是把数据保存在本地,次要功能也可以接受请求并响应,不需要通过别的软件)
代理
在技术多变的今天,客户端和服务端就有很重要的问题 那就是安全
于是就有了 代理 技术
所谓代理,就是客户端不想让服务端知道自己的真实地址,简单理解就是 VPN

这样隐藏了真实的客户端地址和身份
游戏加速器就是这个原理
自己的地址被墙了 我们可以通过代理去请求数据 我们和代理交换数据就可以啦
- 正向代理
客户端主动访问 服务端被动接受请求 因为正向代理就是保护客户端的

- 反向代理
客户端请求服务端 服务端用一个向外暴露的服务器去接受 然后转发到真实服务器
保护服务器真实地址

域名和域名服务器
它隐藏了真实服务器的ip而暴露一个自定义域名 类似反向代理服务器

域名服务器(DNS服务器)就是提供IP地址和域名之间的转换服务的服务器
域名和IP地址相互映射(这真实ip是在买域名的时候 后台可以设置的 这就叫域名解析)
DNS域名解析原理
host就是本地DNS 输入网址 客户端首先找本地DNS没找到对应ip才会去网络DNS找 找到之后会带着网址向目标ip请求
浏览器访问服务器原理:

一个服务器请求量过大,服务器的后端程序会内存溢出,导致502
代理ip可分发到多个实际服务器ip
后端有两个解决方式:
- 分布式
就是把一个服务拆分为多个
一个业务分拆多个子业务,部署到不同的功能服务器,一个挂了就挂了😂
(如果项目不大 它一般安装在和服务同一台服务器里 直接把请求转到本地的服务器软件里)
- 集群
就是部署多个项目统一管理接受请求
一套项目部署多台服务器,其中一台挂了,其他的可继续访问
假设有多个服务器作为集群 那么怎么保证所有的请求均分而不导致某一个服务器被挤爆呢
(如果项目特大 一般单独安装在一个服务器里 还可以实现负载均衡)
——负载均衡
大型服务主要是解决两个事:
- 高吞吐就是能承载高并发的请求处理
- 高可用就是系统的可用程度,包括安全 流畅 不出差错等等
Nginx
- 反向代理服务器
反向代理服务器是它最最主要的功能,能隐藏掉其服务器真实ip和端口
- 实现负载均衡
反向代理服务器在做负载均衡来实现所有集群节点的平均分配
- HTTP服务器(静态资源服务器)
反向代理服务器可以把请求转到本地的服务器软件里
这个服务器软件可以是Tomcat 也可以是nginx
在前后端分离的时代 也就是现在 前端页面可以丢给nginx做静态映射 后端服务可以交给tomcat
正向代理
服务处理发展史
- 裸奔时代

域名访问 -> 服务商域名解析,通过域名找到ip -> 拿到ip访问tomcat -> 返回页面
- DNS轮循

1个域名映射3个ip 自带负载均衡(高吞吐 低可用)
假设一个tomcat的并发量是每秒1000,那么这个服务的并发量就是每秒3000
- Nginx

高吞吐 中可用
其中一个tomcat挂掉了,可正常访问,nginx挂掉了就挂掉了
- keepalived

keepalived实现nginx集群 挂一个还有一个
- keepalived+lvs

nginx被lvs负载均衡 同时还负载均衡tomcat
lvs是操作系统层面 请求不容易超过并发 同时lvs还是集群的 挂掉一个还有
超高并发+超高可用
给nginx集群一个负载均衡 请求会平分到各个nginx 各个nginx再反向代理+负载均衡到各个tomcat