前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除
一、SSH服务
1、问题引出
哪些设置能够提升SSH远程管理的安全等级?
2、SSH的登录验证方式-口令登录
3、SSH的登录验证方式-密钥登录
4、SSH的登录设置
配置文件:/etc/ssh/sshd_config
vi /etc/ssh/sshd_config
#Port 22 # SSH服务默认监听端口
#ListenAddress 0.0.0.0 # SSH服务默认监听IP地址
#PermitRootLogin yes # 是否允许root用户使用ssh登录
#MaxAuthTries 6 # 设置客户端登录失败尝试次数为6次
vi /etc/profile
#export TMOUT=300 # 设置客户端5分钟无操作自动断开连接
5、答案
- 登录验证模式修改为密钥登录
- 登录端口修改为非22端口以及指定监听IP
- 禁止root用户远程登录
- 设置无操作时自动断开连接
- 设置登录失败后登录尝试次数为6次
- 编写防火墙规则,使用白名单机制放行ssh服务的监听端口
6、扩展题
Q1:SSH连接时认证时间过长如何解决?
vi /etc/ssh/sshd_config
#UseDns yes # 取消ssh登录时的dns反向解析请求功能
# 注意事项:在/etc/ssh/sshd_config配置文件中注释掉的选项不代表不生效,反而代表默认生效,想关闭某功能,一定要取消注释然后修改为no才可以
Q2:scp和rsync进行远程文件复制有什么区别?
区别 | ||||
---|---|---|---|---|
scp | 全量备份 | 文件级传输 | 加密传输 | 资源消耗低 |
rsync | 差异对比,增量备份 | 分块校验,部分传输 | 非加密传输 | 资源消耗高(零散文件较多) |
二、DHCP+FTP
1、问题引出
描述通过DHCP服务器获取IP地址的过程
2、DHCP租约四部曲
3、DHCP续租
4、DHCP租用失败
- 如果DHCP客户机无法找到DHCP服务器,它将从TCP/IP的B类网段169.254.0.0/16中挑选一个IP地址作为自己的临时IP地址,继续每隔5分钟尝试与DHCP服务器进行通讯,一旦与DHCP服务器取得联系,则客户机放弃自动配置的临时IP地址,而使用DHCP服务器分配的IP地址。
-
DHCP客户机收到DHCP服务器回应的ACK报文后,通过地址冲突检测(arp)发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送DECLINE报文,通知服务器所分配的IP地址不可用。
5、答案
DHCP租约过程分4步:
- 客户机请求IP(客户机发DHCPDISCOVER广播包)
- 服务器响应(服务器发DHCPOFFER广播包)
- 客户机选择IP(客户机发DHCPREQUEST广播包)
- 服务器确定租约(服务器发DHCPACK/DHCPNAK广播包)
6、扩展题
Q1:简单描述FTP的主动模式和被动模式的区别?
Q2:集群环境中,如何保证所有服务器之间的时间误差较小
手动测试同步:ntpdate时间服务器IP地址
自动同步:将命令写入计划任务
三、DNS服务
1、问题引出
描述用户访问网站时DNS的解析过程
2、答案
- 客户机首先查看本地hosts文件是否有解析记录,有则直接用来访问web server
- 没有则向网卡中记录的首选DNS(本地DNS)发起查询请求
- 本地DNS若有记录则返回给客户端,客户端接收接收到后直接访问web server,若没有,则本地DNS向根域服务器发起请求,请求解析对应顶级域的IP地址
- 本地DNS得到顶级域服务器IP后,再向顶级域服务器发起请求,请求解析权威DNS服务器的IP地址
- 本地DNS服务器获取到权威DNS服务器IP地址后,再向其查询具体的完整域名的对应解析记录
- 最终本地DNS将查询到的对应域名的解析记录发送给客户端,并在本地记录一份
3、扩展题
解释权威DNS和递归DNS的含义,并描述只能DNS的实现原理
- 权威DNS是经上一级授权对域名进行解析的DNS服务器,同时它可以把解析授权给其他服务器
- 递归DNS负责接收用户对任何域名的查询,并返回结果给用户,它可以缓存结果避免用户再向上查询
- 智能DNS就是将对用户发起的查询进行判断出是哪个运营商的用户查询,然后将请求转发给相应的运营商IP处理,减少跨运营访问的时间,提高访问速度
四、Apache配置
1、问题引出
公司有一台服务器,需要在上面跑两个网站,并且其中一个网站需要更换新域名,请问如何处理?
网站1:www.a.com
网站2:www.b.com(旧) www.d.com(新)
2、rewrite地址重写
<IfModule mod_rewrite.c>
#在指定的网站目录下创建文件,并添加以下内容
RewriteEngine on
# 开启rewrite功能
RewriteCond %{HTTP_HOST} ^www.b.com
# 把以www.a.com开头的内容赋值给HTTP_HOST变量
RewriteRule ^(.*)$ http://www.d.com/$1 [R=permanent,L]
# ^(.*)$指代客户端要访问的资源
# $1 把.*所指代的内容赋值到$1变量中
# R=permanent 永久重定向=301
# L 指定该规则为最后一条生效的规则,以后的不再生效
</Ifmodule>
3、扩展题
Q1:简述Apache的三种工作模式?
Q2:写出工作中常见的Apache优化策略
- 设置Apache的日志轮替和切割规则,防止日志过大
- 美化错误页面,将错误信息重定向到首页或指定页面
- 屏蔽Apache的版本等信息,防止被人获取Apache的相应版本
- 配置静态缓存,减少对服务器的访问压力
- 禁止解析指定目录下的页面程序,比如upload,禁止解析用户上传的脚本文件
- ......
五、Nginx配置
1、问题引出
Apache和Nginx各有什么优缺点,应该如何选择?
2、Apache的优缺点
优点:
- Apache的rewrite功能比nginx的要强大
- 模块非常多,基本想要的功能都能找到模块
- 存在时间较长,文献较全,bug也相对较少
- 动静态解析都超稳定
缺点:
-
由于工作模式是同步阻塞型,导致资源消耗较高,并发能力较差
3、Nginx的优缺点
优点:
- 轻量级服务,比Apache占用更少的内存及资源
- 并发能力强,nginx处理请求是异步非阻塞的,而Apache则是阻塞型的,在高并发下nginx能保持资源消耗高性能
- 高度模块化设计,编写模块相对简单
- 社区活跃,各种高性能模块产出迅速
缺点:
-
动态处理上需要使用fastcgi连接PHP的FPM服务,相比Apache不占优势
4、Apache与Nginx的选择
Nginx适合做静态处理,简单,效率高
Apache适合做动态处理,稳定,功能强
并发较高的情况下优先选择Nginx,并发要求不高的情况下两者都可以,规模稍大的可以使用Nginx作为反向代理,然后将动态请求负载均衡到后端Apache上。
5、扩展题
Q1:为什么Nginx的并发能力强,资源消耗低?
答:首先了解什么是同步和异步;同步:小明收到快递即将送达的短信,在楼下一直等待快递到达。异步:小明收到快递即将到达的短信,小明不会下楼去取,而是快递小哥到楼下后,打电话通知小明,然后小明下楼取快递。
再了解一下阻塞与非阻塞:阻塞:小明收到快递即将到达的信息后,什么事都不做,一直专门等快递。非阻塞:小明收到快递即将到达的消息后,等快递的时候,还一边敲代码,一边听歌,等着快递送达的消息。
所以Nginx是以异步非阻塞方式工作:
- 客户端发送request,服务器分配work进程来处理
- 能立即处理完的,处理后work进程释放资源,进行下一个request的处理
- 不能立即处理完的work进程注册返回事件,然后接着去处理其他request
- 当之前的request结果返回后,触发返回事件,由空闲work进程接着处理通过这种快速处理,快速释放请求的方式,达到同样的配置可以处理更大并发量的目的
Q2:写出几个Nginx的常用模块,并描述其功能
- http_ssl_module:实现服务器加密传输的模块,部署完成后可使用https://协议进程数据传输,保证数据传输过程的安全
- http_image_filter_module:通过该模块可以实现图片裁剪,将过大的图片裁剪为指定大小的图片,生成缩略图,保证传输速率,该选项默认不开启
- http_rewrite_module:Nginx的地址重写模块,功能与Apache的一样,可以实现通过正则匹配来完成条件判断,然后进行域名或url的重写。
六、Http状态码
写出几个常见的GTTP状态码,并解释出现原因
1、Http状态码分类
HTTP状态码是五个不同的类别:
- 1**:信息,服务器收到请求,需要请求者继续执行操作
- 2**:成功,操作被成功接收并处理
- 3**:重定向,需要进一步的操作以完成请求
- 4**:客户端错误,请求包含语法错误或无法完成请求
- 5**:服务器错误,服务器在处理请求的过程中发生了错误
2、1**:信息响应
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
100 | Continue | 继续。客户端应继续其请求 |
101 | Switching Protocols | 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议 |
3、2**:成功响应
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
200 | OK | 请求成功。一般用于GET与POST请求 |
201 | Created | 已创建。成功请求并创建了新的资源 |
202 | Accepted | 已接收。已经接收请求,但未处理完成 |
203 | Non-Authoritative Information | 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本 |
204 | No Content | 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 |
205 | Reset Content | 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域 |
206 | Partial Content | 部分内容。服务器成功处理了部分GET请求 |
4、3**:重定向
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
300 | Multiple Choices | 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择 |
301 | Moved Permanently | 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 |
302 | Found | 临时移动。与301类似。但资源只是临时 被移动。客户端应继续使用原有URI |
303 | See Other | 查看其他地址。与301类似。使用GET和POST请求查看 |
304 | Not Modified | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 |
305 | Use Proxy | 使用代理。所请求的资源必须通过代理访问 |
307 | Temporary Redirect | 临时重定向。与302类似。使用GET请求重定向 |
5、4**:客户端错误
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
401 | Unautherized | 请求要求用户的身份认证 |
402 | Payment Requied | 保留,将来使用 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页) |
405 | Method Not Allowed | 客户端请求中的方法被禁止 |
406 | Not Acceptable | 服务器无法根据客户端请求的内容特性完成请求 |
407 | Proxy Authentication Required | 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权 |
6、5**:服务器端错误
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
501 | Not Implemented | 服务器不支持请求的功能,无法完成请求 |
502 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After信息中 |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求 |
505 | HTTP Version not supported | 服务器不支持请求的HTTP协议的版本,无法完成处理 |
致谢
在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。
学习永无止境,让我们共同进步!!