作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。
公众号:网络豆云计算学堂
座右铭:低头赶路,敬事如仪
个人主页: 网络豆的主页
一.选择题
1.HTTP协议默认使用哪个端口?
A. 80 (http超文本传输协议)
B. 443 (https 安全超文本传输协议SSL/TLS加密)
C. 80 (http备用端口)
D. 21 (FTP 文件传输协议)
答案:A
2.以下哪个请求方法是HTTP协议中用于获取资源的?
- GET: (下载)
- POST:(用户向服务器提高数据)
- PUT: (上传)
- DELETE: (请求删除指定的资源)
答案:A
3.在HTTP协议中,以下哪个请求头用于指定可以接受的响应内容类型?
A. Accept (内容类型)
B. Content-Typ(响应头(告诉客户端返回的内容类型))
C. User-Agent (请求头:浏览器版本,操作系统)
D. Referer (请求头:日志记录)
答案:A
4.以下哪个协议用于加密HTTP通信?
A. SSL (加密)
B. TLS (实现 HTTPS 加密的关键技术)
C. HTTPS (加密的超文本传输协议)
D. SSH (远程连接,加密通信)
答案:C
5.在HTTP协议中,以下哪个请求头用于指定请求体的内容类型?
A. Accept (响应内容)
B. Content-Type (请求头:浏览器版本,操作系统)
C. User-Agent (向服务器提供客户端的相关信息)
D. Referer (告知服务器当前请求页面的来源页面地址)
答案:B
6.以下哪个状态码表示HTTP请求的资源未找到?
A. 200 (请求成功并返回所请求的数据。)
B. 404 (请求的资源未找到)
C. 500 (服务器内部错误)
D. 301 (表示永久重定向)
答案:B
7.在HTTP协议中,以下哪个响应头用于指定资源的最后修改时间?
A. Last-Modified (指定资源的最后修改时间)
B. ETag (用于标识资源的版本)
C. Expires (用于指定资源的过期时间)
D. Cache-Control (控制缓存策略)
答案:A
8. 在Nginx中,哪个指令用于设置客户端请求体的最大值?
A. client_max_body_size (客户端请求体的最大值)
B. client_body_buffer_size
C. client_body_temp_path
D. client_body_timeout
答案:A
9. 以下哪个模块是Nginx提供的反向代理模块?
A. ngx_http_proxy_module (Nginx 提供的反向代理模块)
B. ngx_http_fastcgi_module (处理 FastCGI 协议)
C. ngx_http_uwsgi_module (处理 uWSGI 协议)
D. ngx_http_scgi_module (处理 SCGI 协议)
答案:A
10. 在Nginx中,以下哪个指令用于设置服务器名称?
A. server_name (设置服务器名称)
B. server_domain (设置服务器域名)
C. server_host (设置主机名称)
D. server_addr (设置服务器地址)
答案:A
11. 以下哪个模块是Nginx提供的用于实现负载均衡的模块?
A. ngx_http_upstream_module (Nginx 提供的用于实现负载均衡的模块)
B. ngx_http_rewrite_module (用于 URL 重写)
C. ngx_http_access_module (用于控制访问权限)
D. ngx_http_auth_basic_module (用于基本的 HTTP 认证)
答案:A
12. 以下哪个模块是Nginx提供的用于实现SSL加密的模块?
A. ngx_http_ssl_module (Nginx 提供的用于实现 SSL 加密的模块)
B. ngx_http_gzip_module (启用 Gzip 压缩功能)
C. ngx_http_rewrite_module (用于 URL 重写)
D. ngx_http_auth_basic_module (用于基本的 HTTP 认证)
答案: A
13. 在Nginx中,以下哪个指令用于设置客户端请求的超时时间?
A. client_body_timeout (设置读取客户端请求体的超时时间)
B. client_header_timeout (设置读取客户端请求头的超时时间)
C. send_timeout (设置客户端请求的超时时间)
D. keepalive_timeout (设置长连接的超时时间)
答案:C
14. 在Nginx中,以下哪个指令用于设置服务器监听的端口?
A. listen (监听端口)
B. server_port (服务器端口,并非)
C. port (端口)
D. bind (套接字)
答案:A
15. Nginx作为反向代理服务器时,通常用于以下哪个目的?
A. 提高安全性
B. 负载均衡
C. 缓存静态资源
D. 所有上述
答案:D
16. 在Nginx中,以下哪个模块用于实现反向代理功能?
A. ngx_http_proxy_module (用于实现反向代理功能)
B. ngx_http_rewrite_module (用于URL重写)
C. ngx_http_core_module (提供一些基本的配置和处理功能)
D. ngx_http_upstream_module (用于负载均衡相关的配置)
答案:A
17. 当使用Nginx作为反向代理时,客户端请求不会直接到达后端服务器,而是先经
过Nginx。这种模式通常被称为?
A. 正向代理 (客户端通过代理服务器访问外部网络)
B. 反向代理 (Nginx 负责将请求转发到后端服务器,并将后端服务器的响应返回给客户端)
C. 透明代理 (“透明”的,客户端不需要进行特殊配置)
D. 隧道代理 (用于建立特定类型的网络连接隧道)
答案:B
18. 在Nginx中,以下哪个指令用于指定后端服务器的列表?
A. proxy_pass (将请求转发到指定的单个后端服务器)
B. upstream (定义一个服务器组)
C. server (配置虚拟服务器的相关参数)
D. Location (根据请求的 URI 进行匹配,从而执行特定的配置指令)
答案:B
19. 在Nginx中,以下哪个指令用于设置代理缓存的路径?
A. proxy_cache_path (设置代理缓存的路径)
B. proxy_cache (启用或禁用代理缓存功能)
C. proxy_temp_path (用于设置临时文件的存储路径)
D. proxy_store_path (用于设置代理缓存路径的正确指令)
答案:A
20. 在Ansible中,用于指定要管理的主机的文件是什么?
A. ansible.cfg (Ansible 的配置文件)
B. inventory (用于指定要管理的主机)
C. playbook (Ansible 用于定义任务和流程的文件)
D. roles (组织和复用 Ansible 任务的模块)
答案:B
21. 以下哪个是Ansible的默认通信协议?
A. HTTP (超文本传输协议)
B. HTTPS (加密的超文本传输协议)
C. SSH (Ansible 的默认通信协议)
D. FTP (文件传输协议)
答案:C
22. 在Ansible中,以下哪个命令用于执行Ad-Hoc命令?
A. ansible-playbook (用于执行预编写的 playbook)
B. ansible-console (提供了一个交互式的控制台来执行 Ansible 任务)
C. ansible (用于执行 Ad-Hoc 命令)
D. ansible-galaxy (用于管理 Ansible 角色)
答案:C
23. 以下哪个是Ansible中的事实收集模块?
A. setup (Ansible 中的事实收集模块)
B. facts (通过事实收集模块)
C. gather_facts (一个参数或选项,用于控制是否收集目标主机的事实信息)
D. all_facts (并非 Ansible 中的标准模块)
答案:A
24. 在LVM架构中,哪一层负责物理存储的实际分配?
A. Physical Volume (PV) (物理存储的实际分配)
B. Volume Group (VG) (由一个或多个 Physical Volume 组成的存储池)
C. Logical Volume (LV) (是从 Volume Group 中划分出来的逻辑卷)
D. Logical Unit Number (LUN) (用于存储区域网络 (SAN) 环境中)
答案:A
25. 以下哪个命令用于创建Volume Group?
A. pvcreate 用于创建 Physical Volume(物理卷)
B. vgcreate 用于创建 Volume Group(卷组)
C. lvcreate 用于创建 Logical Volume(逻辑卷)
D. lvextend 用于扩展 Logical Volume 的大小
答案:B
26. 哪个LVM命令用于扩展逻辑卷的大小?
A. pvresize (用于调整物理卷的大小)
B. vgextend (用于扩展卷组的大小)
C. lvextend (用于扩展逻辑卷的大小)
D. lvreduce (用于减小逻辑卷的大小)
答案:C
27. 当你想要从Volume Group中移除一个Physical Volume时,应该使用哪个命令?
A. pvremove (从 Volume Group 中移除一个 Physical Volume)
B. vgremove (用于删除一个 Volume Group)
C. lvremove (用于删除一个 Logical Volume)
D. pvmove (用于在 Physical Volume 之间移动数据)
答案:A
28. 哪个命令用来显示LVM的详细信息,包括LV、VG和PV的状态?
A. lvs (显示逻辑卷的简要信息)
B. pvs (主要显示物理卷的简要信息)
C. vgs (主要显示卷组的简要信息)
D. lvdisplay / pvdisplay / vgdisplay (提供更详细和全面的状态信息)
答案:D
29. 下列哪个运行级别表示多用户图形界面:
A. Runlevel 1 (单用户模式)
B. Runlevel 2 (多用户模式(无网络))
C. Runlevel 5 (多用户图形界面)
D. Runlevel 6 (重启系统)
答案:C
30. 在Linux中,如何查看某个特定服务的启动日志?
A. journalctl -u 服务名.service (查看某个特定服务的启动日志)
B. tail /var/log/messages (查看系统的通用消息日志的末尾部分)
C. cat /var/log/syslog | grep 服务名 (搜索与服务名相关的信息,但不是专门针对服务启动日志)
D. less /var/log/boot.log (查看系统启动相关的日志)
答案:A
二、简答题
1. 简述一次 Web 资源请求的具体过程?
(1)用户输入域名->浏览器跳转->app缓存->DNS解析(递归查询|迭代查询)
(2)由浏览器向服务器发起tcp连接(三次握手)
(3)客户端发起HTTP请求:
请求的方法(获取)
请求的主机:域名
请求的资源类型(html)
请求的端口(80、443)
请求携带的参数(类型、压缩、认证等)
(4)服务器的响应:
服务器的web软件
响应的文件类型
是否压缩
是否长连接
(5)客户端向服务器发起tcp断开(四次握手)
2. 实现session一致,有哪些方法?
(1).粘性会话(Sticky Session)
(2).Session 复制
(3).Session 集中存储
(4).令牌机制
3. 用nginx部署web服务器,需要如何优化nginx?
创建代理配置文件,添加优化项(或直接使用第(4)步的配置)
vim /etc/nginx/conf.d/lb1.conf
添加:
server {
listen 80;
server_name blog.benet.com;
location / {
proxy_pass http://192.168.8.6;
proxy_set_header Host $http_host; #重新定义或者添加发往后端服务器的请求头
proxy_set_header X-Real-IP $remote_addr; #启用客户端真实地址(否则日志中显示的是代理在访问网站)
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#记录代理地址
proxy_connect_timeout 30; (单位:秒,默认60秒) #代理和后端服务器连接超时时间
proxy_send_timeout 60; #后端服务器传回代理的超时时间
proxy_read_timeout 60; #代理等待后端服务器的响应时间
proxy_buffering on; #启用缓存,后端返回内容先缓存,再给客户端,收到多少转多少
proxy_buffer_size 32k; #代理缓存用户头信息的缓存区大小
proxy_buffers 4 128k; #缓存区的设置
proxy_busy_buffers_size 256k;
#从proxy_buffers划出一部分缓冲区来专门向客户端传送数据的地方
proxy_max_temp_file_size 256k;
#超大的响应头存储成文件。
}
}
}
保存退出
systemctl restart nginx
扩展:创建优化项文件,网站配置文件直接调用(选做,但推荐)
vim /etc/nginx/nginx_params
网站配置调用
vim /etc/nginx/conf.d/lb1.conf
- nginx作为负载均衡,有哪些调度方法?
轮询(Round Robin)
加权轮询(Weighted Round Robin)’
IP 哈希(IP Hash)
最少连接(Least Connections)
加权最少连接(Weighted Least Connections)
- 设计一个支持高并发、高可用的动态网站架构?
实验目标:七台服务器搭建lnmp,实现高并发,高可用的动态网站架构
Lb1:
1).搭建Keepalived,以vrrp为底层,实现多台主机高可用群集lb1为主
2).搭建nginx负载均衡,接收到客户的URL访问请求后分散转发到后台web群集节点
3).将nginx配置文件拷贝到lb2
Lb2:
- .同样搭建Keepalived,lb2为备份,若lb1 done掉后,lb2会立即收到消息并接管lb1的工作
- .搭建nginx负载均衡,接收到客户的URL访问请求后分散转发到后台web群集节点
Web1:
- .搭建nginx web网站,先安装nginx
- 复制wordpress网页到根目录之下,并解压赋权
- 修改web配置文件添加动态php和静态,将网页根目录拷贝到php服务器上,以便php服务器读取网页内容
- 将默认配置文件及wordpress网页根目录同时拷贝到web2上实现均可访问
- 将网页根目录拷贝到nfs上,查看并挂载
Web2:同样搭建nginx web网站
- .先安装nginx
- 接收到web1所拷贝的内容后,重启nginx服务
Php:动态解析器
- 先安装php服务
- 因php服务默认只能监听本机的Ip,所以需要修改配置文件,并重启服务
Mysql:数据库
- .先安装数据库
- 并创建库和用户名及密码,重启服务
Nfs:文件共享
- .默认以安装nfs
- 创建共享目录,并设置永久权限,重启服务