rsync?
#1.什么是备份?为什么要备份?备份哪些数据?
简答:1、备份:就是给源文件增加一个副本
2、为了数据的安全性
3、防止误删
4、能够快速恢复
5、备份比较重要的数据
#2.为什么使用rsync来备份数据?为什么不用scp呢?
简答:rsync远程同步工具支持可以实现增量的同步
scp不支持增量备份,只支持全量备份,会造成资源的浪费,比如磁盘空间等等
#3.为什么客户端推送给rsync服务器上的数据权限都会发生变化?
简答:因为客户端推送数据到rsync服务器,rsync服务器由对应的用户将数据写入,所以权限会发生变化
nfs
#1.nfs为什么要保证服务端压缩的用户与客户端的用户一致?
简答:因为我们要进行远程挂载,解决我们多台机器静态资源一致性问题
#2.nfs能否实现高可用?如何实现?高可用实现很麻烦是否考虑gfs?
简答:gfs主要是构建在廉价服务器之上的大型分布式文件系统,
大部分都是以数GB的大文件,绝大数文件是在文件末尾进行追加,
而不是覆盖,一旦写完之后,对文件的操作就只有读,而且都是顺序读
sersync
###1.为什么要使用sersync做实时同步。你们在什么场景下会使用到实时同步?
简答:主要是能够让本地快速切换至云端;在我们同步的目录数量高达几百G甚至1T以上,
文件很多时,我们采用rsync+sersync
#2.sersync如何实现的实时同步,请说出实现思路?
简答:主要借助于一个通知接口,inotify.inotify监控本地主机的事件
(创建,删除,修改)则通知执行动作,这个动作可以是rsync同步,也可以是其他
http协议
#1.为什么会出现http1.0 1.1 2.0?
简答:HTTP1.0:最早(1996年)是在网页中使用,只是简单的使用在网页和网络请求上;一对一 短连接
HTTP1.1:在1999年才开始广泛用于现在的各大浏览器网络请求中,也是目前最为广泛的HTTP协议;
它主要体现在缓存处理、带宽优化及网络连接的使用,错误通知的管理,一对多 长连接
HTTP2.0:多个请求可同时在一个连接上并行执行。某个请求任务耗时严重,不会影响到其它连接的正常执行
#2.http请求中携带了哪些请求报文?
简答:请求头:
1.GET
2.POST
3.head
请求头部: 参数
User-Agent
Accept
Host
空行
请求数据
#3.服务端响应客户端时,响应的状态码有哪些?响应的报文有哪些?都是什么含义?
200 ok 正常
301 redirect 跳转 (永久)
302 redirect 跳转 (临时)
304 Not Modified 代表浏览器缓存
401 Authorization Required 验证失败
403 Forbidden 1.权限不足 2.找不到首页
404 Not Found 服务器上没有你想要的的资源
500 服务器错误 ( 可能会碰到 代码 )
502 Bad Gateway 找不到后端服务 nginx --> php
503 非常繁忙,负载过重,导致无法及时响应用户的请求
504 后端服务超时
响应的报文:报文首部:{状态行(HTTP版本,状态码)响应首部字段,通用首部字段,实体首部字段,空行,报文主体}
#4.如果访问网站出现403、404、500、502、504错误,大概都会是哪些呢?
简答:403 找不到首页,权限不足,nginx配置指定目录错误
404 服务器上没有你想要的的资源,请求错误
500 服务器错误(可能是代码的问题,后端服务配置错误)
502 找不到后端服务(可能是nginx---php未启动)
504 后端服务器超时,代理配置错误
nginx基础
简答:
php:fastcgi
java: proxy
python: uwsgi
简答:通过配置server,配置监听的端口和域名,通过location匹配指定到目录
lnmp 架构
linux+nginx+mysql+php
linux+nginx+mysql+python
简答:nginx默认监听80端口,客户端发起http请求,nginx通过fastcgi协议将请求交给后端的php的管理程序php-fpm,php-fpm将请求下发给客户端,发起http请求,nginx进行location匹配
静态资源nginx处理,动态资源通过fastcgi协议交给后端php
php后端首先通过php-fpm管理程序叫请求下发给warrap工作进程
warrpa进程调用php进行解析
如果有需要查询数据库的操作由php连接数据库进行查询
简答:设定一个变量:SCRIPT_FILENAME;变量内容就是$document_root:当前请求的根目录 $fastcgi_script_name:当前请
nginx 负载均衡
#0.Nginx能实现那几层的负载均衡? 4层还是7层?
4层 7层
#1.Nginx使用哪两个模块来实现的负载均衡功能?
通过stream模块实现四层
通过upstream模块实现七层
#2.nginx作为负载均衡是不是必须要有keepalived服务?
不一定要有,nginx和keepalived没有关系,nginx需要借助于keepalived VIP地址漂移实现高可用
#3.Nginx反向代理与负载均衡的关系?
简答:nginx负载均衡就是通过upstream模块将后端服务定义为一个虚拟资源池,通过反向代理这个虚拟资源池来实现的负载
#4.Nginx反向代理与负载均衡的区别?
简答:反向代理只能代理一台服务器
负载可以代理一组虚拟资源池,包含多台服务器
负载均衡需要通过反向代理来实现,反向代理就是指nginx作为前端服务器,将请求转发到后端,再将后端服务器的结果,返回给我们的客户端,它在中间做了一个代理服务器的角色
负载均衡对反向代理增加了一些策略,因为后端是多台服务器,nginx会根据设定的策略将请求转发给一个相对空闲的服务器,对负载进行分流,减轻服务器压力
#5.Nginx负载均衡中的Nginx代理与转发有什么区别?
简答:代理:代为办理,代替客户端向后端发起请求
转发:改写数据包,就是修改数据包的端口和IP,来实现客户端的请求
#6.Nginx负载均衡如何解决会话共享的问题?分别有什么优缺点?
简答:1.ip_hash 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
解决问题: 能解决会话保持的问题
带来新的问题: 会造成后端负载不均衡
2.实现redis会话共享
1. 不使用session,使用cookie
session是存放在服务器端的,cookie是存放在客户端的,
我们可以把用户访问页面产生的session放到cookie里面,就是以cookie为中转站。
你访问web服务器A,产生了session然后把它放到cookie里面,当你的请求被分配到B服务器时,
服务器B先判断服务器有没有这个session,如果没有,再去看看客户端的cookie里面有没有这个session,
如果也没有,说明session真的不存,如果cookie里面有,就把cookie里面的sessoin同步到服务器B,
这样就可以实现session的同步了。
说明:这种方法实现起来简单,方便,也不会加大数据库的负担,但是如果客户端把cookie禁掉了的话,
那么session就无从同步了,这样会给网站带来损失;cookie的安全性不高,虽然它已经加了密,
但是还是可以伪造的,所以这种方式也是不推荐的。
2. session存在数据库mysql
session保存在数据库中,是把session表和其他的数据表存放在一起,那么当用户只要登录后随便操作了些什么就要去数据库验证一下session的状态,这样无疑加重了mysql数据库的压力;如果数据库也做了集群的话,那么也就是说每个数据库集群的节点都得保存这个session表,而且要保证每个集群的节点中数据库的session表的数据保持一致,实时同步
说明:session保持在数据库,加重了数据库的IO,增大数据库的压力和负担,从而影响数据库的读写性能,而且mysql集群的话也不利于session的实时同步
3. session存在缓存memcache或者redis中
memcache可以做分布式,php配置文件中设置存储方式为memcache,这样php自己会建立一个session集群,将session数据存储在memcache中。
说明:这种方式来同步session,不会加大数据库的负担,而且安全性比用cookie保存session大大的提高,把session放到内存里面,比从文件中读取要快很多。但是memcache把内存分成很多种规格的存储块,有块就有大小,这种方式也就决定了,memcache不能完全利用内存,会产生内存碎片,如果存储块不足,还会产生内存溢出。
#7.Nginx后端多台web如果不使用负载均衡,如何能实现用户访问域名时能够均匀调度到后端的节点?
简答:可以通过DNS轮询的办法,为一个域名添加多个A记录,通过DNS解析来进行轮询调度,但这样会将服务器真实IP地址暴漏,不利于安全
#8.nginx作为负载均衡是不是必须要有keepalived服务?
nginx rewrite
https
简答:可以在阿里云申请ssl证书;证书分为三类:DV;OV;EV;EV为最高级的ssl证书,EV为企业级证书,我们可申请DV型免费证书
简答:配置在负载均衡上即可,负载均衡请求后方web时可通过http发起请求
简答:通过location判断,当uri为指定时,不进行return跳转
keepalived
主备:一主一备,同时只有一个在使用
双主:会为主备,两个同时都在使用;同时运行两套架构,为节省资源
抢占式:一主一备,高优先级为master;抢占式会发生频繁切换,导致用户体验差,
非抢占:两个都为备份,且优先级不同,正在使用的就是master,但需要两台配置相同,
简答:没有关系,nginx使用keepalived的虚拟IP:vip,将域名解析到vip,当一台nginx服务器宕机,vip漂移到另一台服务器,实现用户无感知的切换
ansible
时间服务
简答:为了防止服务器长时间运行导致时间有偏差
/10 * * * *ntpdate ntp1.aliyun.com > /dev/null
内网共享上网
简答:内部主机没有外网网卡,无法联网下载资源
两种方式: 1.将内部主机的网关设为防火墙服务器,防火墙服务器开启数据转发,可以实现共享上网
2.购买nat网关,将内部交换机连接nat网关,可以实现上网
跳板机
机?
简答:可以通过跳板机管理内部主机,可以提高架构的安全性
简答:用户可以通过外网拨openvpn,openvpn会分配一个内网的地址,通过这个内网地址来连接后端的服务器,提高架构的安全性
监控
1.监控哪些东西?或者说是监控哪些对象?
2.监控的内容? 设定监控的阈值?
dns
递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。
如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
客户机和服务器之间的查询是递归查询
是递归查询告诉客户机IP
DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,
当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,
客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。
服务器之间的查询是迭代查询
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器