9、Nginx也可作为静态网页和图片服务器,这方面的性能也无对手。还有Nginx社区非常活跃,第三方模块也很多
Nginx的缺点是:
1、Nginx仅能支持http、https和Email协议,这样就在适用范围上面小些,这个是它的缺点
2、对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测
不支持Session的直接保持,但能通过ip_hash来解决
LVS:使用Linux内核集群实现一个高性能、高可用的负载均衡服务器
它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability)
LVS的优点是:
1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生
这个特点也决定了它在负载均衡软件里的性能最强的,对内存和cpu资源消耗比较低
2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西
所以并不需要太多接触,大大减少了人为出错的几率
3、工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案
如LVS+Keepalived,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived
4、无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能不会收到大流量的影响。
5、应用范围较广,因为LVS工作在4层,所以它几乎可对所有应用做负载均衡,包括http、数据库、在线聊天室等
LVS的缺点是:
1、软件本身不支持正则表达式处理,不能做动静分离
而现在许多网站在这方面都有较强的需求,这个是Nginx/HAProxy+Keepalived的优势所在
2、如果是网站应用比较庞大的话,LVS/DR+Keepalived实施起来就比较复杂了
特别后面有Windows Server的机器的话,如果实施及配置还有维护过程就比较复杂了
相对而言,Nginx/HAProxy+Keepalived就简单多了。
HAProxy的特点是:
1、HAProxy也是支持虚拟主机的。
2、HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导
同时支持通过获取指定的url来检测后端服务器的状态
3、HAProxy跟LVS类似,本身就只是一款负载均衡软件
单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的
4、HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡
对后端的MySQL节点进行检测和负载均衡,大家可以用LVS+Keepalived对MySQL主从做负载均衡
5、HAProxy负载均衡策略非常多,HAProxy的负载均衡算法现在具体有如下8种:
①roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;
② static-rr,表示根据权重,建议关注;
③leastconn,表示最少连接者先处理,建议关注;
④ source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似
我们用其作为解决session问题的一种方法,建议关注;
⑤ri,表示根据请求的URI;
⑥rl_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name;
⑦hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
⑧rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。
19、mysql数据备份工具
mysqldump工具
mysqldump是mysql自带的备份工具,目录在bin目录下面:``/usr/local/mysql/bin/mysqldump
支持基于innodb的热备份,但是由于是逻辑备份,所以速度不是很快,适合备份数据比较小的场景
Mysqldump完全备份+二进制日志可以实现基于时间点的恢复。
基于LVM快照备份
在物理备份中,有基于文件系统的物理备份(LVM的快照),也可以直接用``tar``之类的命令对整个数据库目录
进行打包备份,但是这些只能进行泠备份,不同的存储引擎备份的也不一样,myisam自动备份到表级别
而innodb不开启独立表空间的话只能备份整个数据库。
tar``包备份
percona提供的xtrabackup工具
支持innodb的物理热备份,支持完全备份,增量备份,而且速度非常快,支持innodb存储引起的数据在不同
数据库之间迁移,支持复制模式下的从机备份恢复备份恢复,为了让xtrabackup支持更多的功能扩展
可以设立独立表空间,打开 innodb\_file\_per\_table功能,启用之后可以支持单独的表备份
20、keepalive的工作原理和如何做到健康检查
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组
这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内
其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了
这时就需要根据VRRP的优先级来选举一个backup当master。这样就可以保证路由器的高可用了
keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护
及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式,vrrp模块是来实现VRRP协议的
Keepalived健康检查方式配置
HTTP\_GET|SSL\_GET
HTTP\_GET | SSL\_GET
{
url {
path /
# HTTP/SSL 检查的url可以是多个
digest <STRING>
# HTTP/SSL 检查后的摘要信息用工具genhash生成
status\_code 200
# HTTP/SSL 检查返回的状态码
}
connect\_port 80
# 连接端口
bindto<IPADD>
connect\_timeout 3
# 连接超时时间
nb\_get\_retry 3
# 重连次数
delay\_before\_retry 2
#连接间隔时间
}
21、统计ip访问情况,要求分析nginx访问日志,找出访问页面数量在前十位的ip
cat access.log |
awk
'{print $1}'
|
uniq
-c |
sort
-rn |
head
-10
22、使用tcpdump监听主机为192.168.1.1,tcp端口为80的数据,同时将输出结果保存输出到tcpdump.log
tcpdump
'host 192.168.1.1 and port 80'
> tcpdump.log
23、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1
iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp -dport 80 -j DNAT-to-destination 192.168.2.1:8080
24、简述raid0 raid1 raid5 三种工作模式的工作原理及特点
RAID 0:带区卷,连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率
但它没有数据冗余,``RAID 0 只是单纯地提高性能,并没有为数据的可靠性提供保证
而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0 不能应用于数据安全性要求高的场合
RAID 1:镜像卷,它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据
不能提升写数据效率。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID``1 可以提高读取性能
RAID 1 是磁盘阵列中单位成本最高的,镜像卷可用容量为总容量的1``/2``,但提供了很高的数据安全性和可用性
当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据
RAID5:至少由3块硬盘组成,分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上
任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据(最多允许1块硬盘损坏)
所以raid5可以实现数据冗余,确保数据的安全性,同时raid5也可以提升数据的读写性能
25、你对现在运维工程师的理解和以及对其工作的认识
运维工程师在公司当中责任重大,需要保证时刻为公司及客户提供最高、最快、最稳定、最安全的服务
运维工程师的一个小小的失误,很有可能会对公司及客户造成重大损失
因此运维工程师的工作需要严谨及富有创新精神
26、实时抓取并显示当前系统中tcp 80端口的网络数据信息,请写出完整操作命令
tcpdump -nn tcp port 80
27、服务器开不了机怎么解决一步步的排查
A、造成服务器故障的原因可能有以下几点:
B、如何排查服务器故障的处理步骤如下:
28、Linux系统中病毒怎么解决
1)最简单有效的方法就是重装系统
2)要查的话就是找到病毒文件然后删除
中毒之后一般机器cpu、内存使用率会比较高
机器向外发包等异常情况,排查方法简单介绍下
top 命令找到cpu使用率最高的进程
一般病毒文件命名都比较乱,可以用 ps aux 找到病毒文件位置
rm -f 命令删除病毒文件
检查计划任务、开机启动项和病毒文件目录有无其他可以文件等
3)由于即使删除病毒文件不排除有潜伏病毒,所以最好是把机器备份数据之后重装一下
29、发现一个病毒文件你删了他又自动创建怎么解决
公司的内网某台linux服务器流量莫名其妙的剧增,用iftop查看有连接外网的情况
针对这种情况一般重点查看netstat连接的外网ip和端口。
用lsof -p pid可以查看到具体是那些进程,哪些文件
经查勘发现/root下有相关的配置conf.n hhe两个可疑文件,rm -rf后不到一分钟就自动生成了
由此推断是某个母进程产生的这些文件。所以找到母进程就是找到罪魁祸首
查杀病毒最好断掉外网访问,还好是内网服务器,可以通过内网访问
断了内网,病毒就失去外联的能力,杀掉它就容易的多
怎么找到呢,找了半天也没有看到蛛丝马迹,没办法只有ps axu一个个排查
方法是查看可以的用户和和系统相似而又不是的冒牌货,果然,看到了如下进程可疑
看不到图片就是/usr/bin/.sshd
于是我杀掉所有.sshd相关的进程,然后直接删掉.sshd这个可执行文件
然后才删掉了文章开头提到的自动复活的文件
总结一下,遇到这种问题,如果不是太严重,尽量不要重装系统
一般就是先断外网,然后利用iftop,ps,netstat,chattr,lsof,pstree这些工具顺藤摸瓜
一般都能找到元凶。但是如果遇到诸如此类的问题
/boot/efi/EFI/redhat/grub.efi: Heuristics.Broken.Executable FOUND,个人觉得就要重装系统了
30、说说TCP/IP的七层模型
应用层 (Application):
网络服务与最终用户的一个接口。
协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
表示层(Presentation Layer):
数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
格式有,JPEG、ASCll、DECOIC、加密格式等
会话层(Session Layer):
建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
对应主机进程,指本地主机与远程主机正在进行的会话
传输层 (Transport):
定义传输数据的协议端口号,以及流控和差错校验。
协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
网络层 (Network):
进行逻辑地址寻址,实现不同网络之间的路径选择。
协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP
数据链路层 (Link):
建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议)
将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正
物理层(Physical Layer):
是``计算机网络
OSI模型
中最低的一层
物理层规定:为传输数据所需要的物理链路创建、维持、拆除
而提供具有机械的,电子的,功能的和规范的特性
简单的说,物理层确保原始的``数据``可在各种物理媒体上传输。``局域网``与``广域网``皆属第1、2层
物理层是``OSI``的第一层,它虽然处于最底层,却是整个开放系统的基础
物理层为设备之间的``数据通信``提供传输媒体及互连设备,为``数据传输``提供可靠的环境
如果您想要用尽量少的词来记住这个第一层,那就是“``信号``和``介质``”
31、你常用的Nginx模块,用来做什么
rewrite模块,实现重写功能
access模块:来源控制
ssl模块:安全加密
ngx\_http\_gzip\_module:网络传输压缩模块
ngx\_http\_proxy\_module 模块实现代理
ngx\_http\_upstream\_module模块实现定义后端服务器列表
ngx\_cache\_purge实现缓存清除功能
32、请列出你了解的web服务器负载架构
Nginx
Haproxy
Keepalived
LVS
33、查看http的并发请求数与其TCP连接状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
还有``ulimit
-n 查看linux系统打开最大的文件描述符,这里默认1024
不修改这里web服务器修改再大也没用,若要用就修改很几个办法,这里说其中一个:
修改
/etc/security/limits
.conf
\* soft nofile 10240
\* hard nofile 10240
重启后生效
34、用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}'| sort | uniq -c | sort -nr |head -20
35、写一个脚本,实现判断192.168.1.0/24网络里,当前在线的IP有哪些,能ping通则认为在线
#!/bin/bash
for
ip
in
`seq`
`1 255``
`do`
`{`
`ping`
`-c 1 192.168.1.$ip >`
`/dev/null`
`2>&1`
`if`
`[ $? -`
`eq`
`0 ];`
`then`
`echo`
`192.168.1.$ip UP`
`else`
`echo`
`192.168.1.$ip DOWN`
`fi`
`}&`
`done`
`wait`
**36、已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张**
**现在要求只能保留最近 7 天的访问日志!请问如何解决? 请给出解决办法或配置或处理命令**
创建文件脚本:
#!/bin/bash
for n in `seq 14`
do
date -s "11/0$n/14"
touch access\_www\_`(date +%F)`.log
done
解决方法:
# pwd/application/logs
# ll
-rw-r--r--. 1 root root 0 Jan 1 00:00 access\_www\_2015-01-01.log
-rw-r--r--. 1 root root 0 Jan 2 00:00 access\_www\_2015-01-02.log
-rw-r--r--. 1 root root 0 Jan 3 00:00 access\_www\_2015-01-03.log
-rw-r--r--. 1 root root 0 Jan 4 00:00 access\_www\_2015-01-04.log
-rw-r--r--. 1 root root 0 Jan 5 00:00 access\_www\_2015-01-05.log
-rw-r--r--. 1 root root 0 Jan 6 00:00 access\_www\_2015-01-06.log
-rw-r--r--. 1 root root 0 Jan 7 00:00 access\_www\_2015-01-07.log
-rw-r--r--. 1 root root 0 Jan 8 00:00 access\_www\_2015-01-08.log
-rw-r--r--. 1 root root 0 Jan 9 00:00 access\_www\_2015-01-09.log
-rw-r--r--. 1 root root 0 Jan 10 00:00 access\_www\_2015-01-10.log
-rw-r--r--. 1 root root 0 Jan 11 00:00 access\_www\_2015-01-11.log
-rw-r--r--. 1 root root 0 Jan 12 00:00 access\_www\_2015-01-12.log
-rw-r--r--. 1 root root 0 Jan 13 00:00 access\_www\_2015-01-13.log
-rw-r--r--. 1 root root 0 Jan 14 00:00 access\_www\_2015-01-14.log
# find /application/logs/ -type f -mtime +7 -name "\*.log"|xargs rm –f
##也可以使用-exec rm -f {} \;进行删除
# ll
-rw-r--r--. 1 root root 0 Jan 7 00:00 access\_www\_2015-01-07.log
-rw-r--r--. 1 root root 0 Jan 8 00:00 access\_www\_2015-01-08.log
-rw-r--r--. 1 root root 0 Jan 9 00:00 access\_www\_2015-01-09.log
-rw-r--r--. 1 root root 0 Jan 10 00:00 access\_www\_2015-01-10.log
-rw-r--r--. 1 root root 0 Jan 11 00:00 access\_www\_2015-01-11.log
-rw-r--r--. 1 root root 0 Jan 12 00:00 access\_www\_2015-01-12.log
-rw-r--r--. 1 root root 0 Jan 13 00:00 access\_www\_2015-01-13.log
-rw-r--r--. 1 root root 0 Jan 14 00:00 access\_www\_2015-01-14.log
**37、如何优化 Linux系统(可以不说太具体)?**
1. 不用root,添加普通用户,通过sudo授权管理
2. 更改默认的远程连接SSH服务端口及禁止root用户远程连接
3. 定时自动更新服务器时间
4. 配置国内yum源
5. 关闭selinux及iptables(iptables工作场景如果有外网IP一定要打开,高并发除外)
6. 调整文件描述符的数量
7. 精简开机启动服务(crond rsyslog network sshd)
8. 内核参数优化(/etc/sysctl.conf)
9. 更改字符集,支持中文,但建议还是用英文字符集,防止乱码
10. 锁定关键系统文件
11. 清空/etc/issue,去除系统及内核版本登录前的屏幕显示
**38、请执行命令取出 linux 中 eth0 的 IP 地址(请用 cut,有能力者也可分别用 awk,sed 命令答)**
cut方法1:
# ifconfig eth0|sed -n '2p'|cut -d ":" -f2|cut -d " " -f1
192.168.20.130
awk方法2:
# ifconfig eth0|awk 'NR==2'|awk -F ":" '{print $2}'|awk '{print $1}'
192.168.20.130
awk多分隔符方法3:
# ifconfig eth0|awk 'NR==2'|awk -F "[: ]+" '{print $4}'
192.168.20.130
sed方法4:
# ifconfig eth0|sed -n '/inet addr/p'|sed -r 's#^.\*ddr:(.\*)Bc.\*$#\1#g'
192.168.20.130
**39、请写出下面 linux SecureCRT 命令行快捷键命令的功能?**
**Ctrl + a**
**Ctrl + c**
**Ctrl + d**
**Ctrl + e**
**Ctrl + l**
**Ctrl + u**
**Ctrl + k**
**tab**
**Ctrl+shift+c**
**Ctrl+shift+v**
解答:
Ctrl + a —->光标移动到行首
Ctrl + e —->光标移动到行尾
Ctrl + c —->终止当前程序
Ctrl + d —->如果光标前有字符则删除,没有则退出当前中断
Ctrl + l —->清屏
Ctrl + u —->剪切光标以前的字符
Ctrl + k —->剪切光标以后的字符
Ctrl + y —->复制u/k的内容
Ctrl + r —->查找最近用过的命令
tab —->命令或路径补全
Ctrl+shift+c —->复制
Ctrl+shift+v —->粘贴
**40、每天晚上 12 点,打包站点目录/var/www/html 备份到/data 目录下(最好每次备份按时间生成不同的备份包)**
# cat a.sh
#/bin/bash
cd /var/www/ && /bin/tar zcf /data/html-`date +%m-%d%H`.tar.gz html/
# crontab –e
00 00 \* \* \* /bin/sh /root/a.sh
**一、Linux操作系统知识**
**1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块?**
答:
常见的Linux发现版本有Redhat、Centos、Debian、Ubuntu、Suse
最擅长Redhat和Centos
Redhat官网:[www.redhat.com]( )
Centos官网:[www.centos.org]( )
我最擅长Linux基本命令操作及相关服务搭建
**2.Linux开机启动流程详细步骤是什么?系统安装完,忘记密码如何破解?**
答:
**开机步骤**
a、首先是bios加电自检、初始化,这个过程会检测相关硬件(cpu、内存、显卡、硬盘等)
然后读取一个启动顺序,以硬盘为例,会读取硬盘中的MBR。
b、加载内核读取/boot里边的配置文件。
c、启动初始化进程,开始运行/sbin/init
d、读取/etc/inittab确定运行级别
为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。**
![](https://img-blog.csdnimg.cn/img_convert/876b2b4946099a760ceac02fdb1c7fef.png)
本份面试集锦涵盖了
* **174 道运维工程师面试题**
* **128道k8s面试题**
* **108道shell脚本面试题**
* **200道Linux面试题**
* **51道docker面试题**
* **35道Jenkis面试题**
* **78道MongoDB面试题**
* **17道ansible面试题**
* **60道dubbo面试题**
* **53道kafka面试**
* **18道mysql面试题**
* **40道nginx面试题**
* **77道redis面试题**
* **28道zookeeper**
**总计 1000+ 道面试题, 内容 又全含金量又高**
* **174道运维工程师面试题**
> 1、什么是运维?
> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
> 3、现在给你三百台服务器,你怎么对他们进行管理?
> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点
> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
> 7、Tomcat和Resin有什么区别,工作中你怎么选择?
> 8、什么是中间件?什么是jdk?
> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?
> 10、什么叫CDN?
> 11、什么叫网站灰度发布?
> 12、简述DNS进行域名解析的过程?
> 13、RabbitMQ是什么东西?
> 14、讲一下Keepalived的工作原理?
> 15、讲述一下LVS三种模式的工作过程?
> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
> 17、如何重置mysql root密码?
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
友。**
[外链图片转存中...(img-snrvzVwa-1714158221105)]
本份面试集锦涵盖了
* **174 道运维工程师面试题**
* **128道k8s面试题**
* **108道shell脚本面试题**
* **200道Linux面试题**
* **51道docker面试题**
* **35道Jenkis面试题**
* **78道MongoDB面试题**
* **17道ansible面试题**
* **60道dubbo面试题**
* **53道kafka面试**
* **18道mysql面试题**
* **40道nginx面试题**
* **77道redis面试题**
* **28道zookeeper**
**总计 1000+ 道面试题, 内容 又全含金量又高**
* **174道运维工程师面试题**
> 1、什么是运维?
> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
> 3、现在给你三百台服务器,你怎么对他们进行管理?
> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点
> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
> 7、Tomcat和Resin有什么区别,工作中你怎么选择?
> 8、什么是中间件?什么是jdk?
> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?
> 10、什么叫CDN?
> 11、什么叫网站灰度发布?
> 12、简述DNS进行域名解析的过程?
> 13、RabbitMQ是什么东西?
> 14、讲一下Keepalived的工作原理?
> 15、讲述一下LVS三种模式的工作过程?
> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
> 17、如何重置mysql root密码?
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**