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基础
#1.Nginx通过什么模块实现、php、java、python等web站点的运行?
简答:
php:fastcgi
java: proxy
python: uwsgi
#2.nginx如何配置一个站点?
简答:通过配置server,配置监听的端口和域名,通过location匹配指定到目录
lnmp 架构
#1.lnmp分别都是啥?
linux+nginx+mysql+php
linux+nginx+mysql+python
#2.lnmp架构中 nginx与php之间的如何通讯的,或者说是如何进行工作的?
简答:nginx默认监听80端口,客户端发起http请求,nginx通过fastcgi协议将请求交给后端的php的管理程序php-fpm,php-fpm将请求下发给客户端,发起http请求,nginx进行location匹配
静态资源nginx处理,动态资源通过fastcgi协议交给后端php
php后端首先通过php-fpm管理程序叫请求下发给warrap工作进程
warrpa进程调用php进行解析
如果有需要查询数据库的操作由php连接数据库进行查询
#3.在搭建lnmp架构中在Nginx中通常会有一个fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name 这段配置到底是和含义?
简答:设定一个变量: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
#1.如何在不花钱申请一个公网真实的HTTPS?
简答:可以在阿里云申请ssl证书;证书分为三类:DV;OV;EV;EV为最高级的ssl证书,EV为企业级证书,我们可申请DV型免费证书
#2.https配置在那里,是负载均衡上即可,还是说所有的web机器上都需要配置443端口?
简答:配置在负载均衡上即可,负载均衡请求后方web时可通过http发起请求
#3.如何实现某个特定的链接不走https?
简答:通过location判断,当uri为指定时,不进行return跳转
keepalived
#1.keepalived主备和keepalived双主的区别是什么?各自在什么场景使用呢?
主备:一主一备,同时只有一个在使用
双主:会为主备,两个同时都在使用;同时运行两套架构,为节省资源
#2.keepalived抢占模式和非抢占模式区别在哪?各自有什么优势?
抢占式:一主一备,高优先级为master;抢占式会发生频繁切换,导致用户体验差,
非抢占:两个都为备份,且优先级不同,正在使用的就是master,但需要两台配置相同,
#3.Nginx与Keeplaived之间有什么关系?Nginx如何借助Keepalived软件来实现的服务高可用?
简答:没有关系,nginx使用keepalived的虚拟IP:vip,将域名解析到vip,当一台nginx服务器宕机,vip漂移到另一台服务器,实现用户无感知的切换
ansible
#1.ansible到底能为我们的运维工作带来什么帮助?
#1.Ansible中的playbook是干什么的?
#2.Ansible中的playbook语法?比如:缩进、短横线、冒号是干什么的?
#3.你了解过ansible中的哪些模块?
时间服务
#1.为什么要做时间同步
简答:为了防止服务器长时间运行导致时间有偏差
#2.大规模机器如何实现时间同步,是所有主机都指向阿里云还是有其他方案?
/10 * * * *ntpdate ntp1.aliyun.com > /dev/null
内网共享上网
#1、你为什么要做内部主机共享上网,是有什么痛点吗?
简答:内部主机没有外网网卡,无法联网下载资源
#2、阿里云环境中如何来实现 “无公网IP的服务器”进行上网。有哪些方式?
两种方式: 1.将内部主机的网关设为防火墙服务器,防火墙服务器开启数据转发,可以实现共享上网
2.购买nat网关,将内部交换机连接nat网关,可以实现上网
跳板机
机?
#1.JumpServer跳板机能干啥,为什么很多公司都会选择跳板机?
简答:可以通过跳板机管理内部主机,可以提高架构的安全性
#2.jumpserver 中的管理用户、系统用户、普通用户的区别?
#3.为什么很多公司先拨号openvpn,然后在登陆jumpserver跳板机,然后用JumpServer跳板机管理内部主机?
简答:用户可以通过外网拨openvpn,openvpn会分配一个内网的地址,通过这个内网地址来连接后端的服务器,提高架构的安全性
监控
1.监控哪些东西?或者说是监控哪些对象?
2.监控的内容? 设定监控的阈值?
dns
#1.什么是递归查询?
递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。
如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
客户机和服务器之间的查询是递归查询
是递归查询告诉客户机IP
#2.什么是迭代查询?
DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,
当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,
客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。
服务器之间的查询是迭代查询