1.
DNS使用的端口号和协议,简单描述一下DNS正向解析和反向解析的工作原理和作用还有应用场景?
答:DNS使用的端口号是53,封装协议udp。正向解析是指域名到IP地址的解析过程。反向解析是从IP地址到域名的解析过程,它的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名。要成功得到域名就必需要有该IP地址的PTR记录。PTR记录是邮件交换记录的一种,邮件交换记录中有A记录和PTR记录,A记录解析名字到地址,而PTR记录解析地址到名字。反向解析主要应用到邮件服务器中来阻拦垃圾邮件,特别是在国外。多数垃圾邮件发送者使用动态分配或者没有注册域名的IP地址来发送垃圾邮件,以逃避追踪,使用了域名反向解析后,就可以大大降低垃圾邮件的数量。
2.编写IPTABLES使用内网某台机器的80端口可以在公网访问,假设公网IP为10.10.1.1 ,实现192.168.1.0/32段的NAT.
答:请网友在评论区补充~_~
3.举出三个以上的主流WEB服务器,并简述他们的特性和优缺点不限操作系统?
答:主流的web服务器有几款:apache、nginx、Microsoft IIS、tomcat、lighttpd、WebLogic、Jboss等,其中以apache,nginx和Microsoft IIS的市场占用率最大。
Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。具体有以下特性:
1、多计算机运行平台;
2、支持最新的http/1.1协议;
3、易配置(httpd.conf);
4、支持虚拟主机;
5、支持http认证;
6、可作为代理服务器;
7、提供web界面监控服务器状态
8、支持ssl数据传输;
9、支持fastcgi;
10、具有用户会话过程的跟踪能力;
优点:源代码开放可以运行在unix,windowns,linux平台上,可移植性、支持的模块多、稳定性很好、相对于其他web server,apache的bug要少一些,处理动态请求方面比较好;
缺点:性能,速度上不及其他轻量级的web服务器,但是也是重量级产品,所消耗的内存,cpu也比其他的要高。相对于nginx来说,apache占用的系统资源要多一些,处理静态请求较nginx要差一些,并发数也较nginx少一些。负载能力较nginx差一些。
nginx具有以下特性:
1、处理静态文件,索引文件以及自动索引
2、无缓存的反向代理加速,简单的负载均衡和容错
3、必须使用FastCGI方式来执行PHP程序,快速响应请求
4、模块化结构
5、nginx专为性能优化而开发,支持epoll模型,能经受高负载的考验,官方表明能支持高达5w的并发连接数
6、nginx具有很高的稳定性,其他web服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很有可能会导致服务器物理内存耗尽,频繁交换而失去响应,只能重启服务器。例如当前apache一旦上到200个进程以上,web响应速度就明显非常缓慢了,而nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持1w个没有活动的了解,nginx只占用2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处的。
7、支持热部署。nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动,还能够在不间断服务的情况下,对软件版本进行升级或重载配置文件的信息。
优点:源代码开放发高性能的http和反向代理服务器,在高并发的情况下,nginx是apache不错的替代品,他能够支持高达50000个并发连接响应,内存,cpu等系统资源消耗也是很低的。
缺点:支持模块比较少,并发性比较好,较apache稳定性差一些,处理动态请求是软肋。
IIS具体有以下特性:IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。
优点:Microsoft IIS 配置很简单,自IIS 6.0版本之后,其在安全性,可靠性、可扩展性方面有了很大的提升。
缺点:不开放源代码,只能运行在windows系统上,bug一般较多等。
4,举出两个主流代理服务器,简述工作模式和优缺点?
答:后续补充。。。网友也可以在评论区补充~_~
5,举出两个负载均衡的软件,并简述工作模式和优缺点?
答:linux下的负载均衡软件有很多,这里简单介绍几个:lvs、nginx、HAProxy
6,IE,FF,chrome浏览器最大并发请求数是多少?
答:豪鹫先说明一下什么是浏览器的并发请求数:通俗地讲,就是当浏览网页的时候同时工作的数量。
如果同时只有2个并发连接的数量,那网页打开的时候只能依赖于这2条线程,前面如果有打开慢的内容,就会直接影响到后面的内容打开,但是如果同时又更多的并发连接数,这样就会大大的提高网页加载速度。当然,浏览器的并发连接数也并非越大越好。
结合网上资料,IE,FF,chrome浏览器三者的最大并发请求数都是6个。
7,简单举例一下linux和windows系统今年都有哪些漏洞?
答:豪鹫收集了2015年针对linux系统的以下几个漏洞,仅供参考,关于更多linux和window的漏洞信息,欢迎各位补充
2015.1乌云网站公布了linux glibc幽灵漏洞:攻击者可以通过利用此漏洞远程获取操作系统的最高控制权限
2015.3乌云网站公布了linux kernel KVM本地权限提升漏洞:Linux kernel 3.18.5之前版本,在客户端OS缺乏SYSENTER MSR初始化时,arch/x86/kvm/emulate.c的em_sysenter函数存在安全漏洞,通过触发使用16位代码段,以模拟SYSENTER指令,客户端OS用户利用此漏洞可获取OS权限或造成OS崩溃,导致拒绝服务。
2015.7乌云公布了linux kernel本地拒绝服务漏洞:攻击者可利用此漏洞执行拒绝服务攻击
8,mysql数据库备份种类有哪些,依据数据库的状态可分为哪些备份,备份工具有哪些,部署一个高可用mysql应用 环境,并说明他的高可用性?
答:mysql数据库备份种类:完全备份、差异备份、增量备份、物理备份(文件备份)
依据mysql的状态可分为:冷备份、热备份、温备份
mysql备份工具:mysqldump、mysqlhotcopy 、kvm快照备份、tar工具备份、xtrabackup工具备份(只支持InnoDB存储引擎)等
豪鹫这里提供几个mysql的高可用方案,各有用途,仅供参考:
A.普通的主从复制————客户端通过master对数据库进行读/写操作,Slave端作为备机,可用来进行一些查询,备份等操作。
优点:部署简单,易于扩展,能提供一定的数据保护。
缺点:如果master主机硬件故障且无法恢复,则可能造成部分未传送到Slave端的数据丢失;如果master端需要进行某些维护操作,将slave临时作为master提供服务之后,又需要重新搭建主从环境,会对master造成一定的性能影响。
B.双主复制————两个 mysql server互相将对方作为自己的master,自己作为对方的Slave来进行复制,一端提供写服务,另一端读服务或者仅仅作为备机不用提供任何服务,而且其还能够跟一个或者多个Slave专门提供读服务。
优点:最大的好处就是既可以避免主Master的写入操作不会受到Slave集群的复制所带来的影响,同时主Master需要切换的时候也基本上不会出现重搭Replication的情况。
缺点:这个架构也有一个弊端,那就是备用的Master有可能成为瓶颈,因为如果后面的Slave集群比较大的话,备用Master可能会因为过多的SlaveIO线程请求而成为瓶颈。
C.主从复制扩展:读写分离————由一个master复制到一个或者多个Slave的架构模式,客户端通过master对数据库进行写操作,通过Slave端进行读操作,并可进行备份,master出现问题后,可以后动将应用切换到Slave端。该方案主要用于读压力比较大的应用系统中。
优点:结构灵活,数据库端廉价扩展,能够解决很多中小型网站的数据库压力瓶颈问题。
缺点:需要程序来实现读写分离,增加了程序的复杂度,如果服务器架构调整或者有主机发生故障,还需要调整程序。
D.HearBeat+双主复制————hearbeat最核心包括的两个部分是心跳监测和资源接管。使用hearbeat+mysql主主同步来实现mysql数据库的 高可用,当master的主机或hearbeat宕机以后会自动切换到备用机上,当恢复以后可以自动切换回来,master继续提供服务。
优点:配置简单,能在一定的程度上避免单点故障。
缺点:如果master上的mysql挂掉,则无法检测到并进行切换,需要一些脚本来协助监控。默认切换到备用机后,不会自动启动mysql,需要手动或者脚本启动,不方便扩展,可能会出现脑裂的问题。
E.Hearbeat+DRBD+Mysql————本方案采用Hearbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性有DRBD这个工具来保证。默认情况下只有一台mysql在工作,当主mysql服务器出现问题后,系统将自动切换到备机上继续提供服务,当主数据库修复完毕,又将服务切回继续由主mysql提供服务。
适用场景:适用于数据库访问量不太大,短期内访问量增长不会太快,对数据库可用性要求非常高的场景。
优点:安全性高,稳定性高,可用性高,出现故障自动切换。
缺点:只有一台服务器提供服务,成本相对较高,不方便扩展,可能会出现数据库脑裂。
F.LVS+Keepalive+双主复制————lvs提供负载均衡,keepalive作为故障转移。服务器单点写入,读实现负载很横和故障切换。当网络、mysql服务、服务器、keepalive服务出现故障后,服务器能自动跳转到备用机,当主服务器服务启动起来后会自动切换回来。
适用场景:适用于对数据库可用性要求比较高,读压力比较大的场景(后端可跟一个或多个Slave服务器,让lvs实现读的负载均衡)。这个方案也能够很方便地进行单台数据库的管理维护以及切换工作,比如进行大表的表结构更改,数据库的升级等。
优点:高可用效率好,可以根据服务与系统的可用性多方面进行切换。可以将写vip和读vip分别进行设置,为读写分离做准备。扩展很方便。可以在后面添加多个从服务器,并做到读的负载均衡。
缺点:在启动或者恢复后如果要实现指定条件替换或者不替换需要通过其他方式实现,比如:临时更改mysql的端口等。安装配置比单写入稍微复杂,需要另外一个vip。管理比单写入复杂。主切换后,从需要手工切换。主备切换需要1s左右的时间。
G.MMM+mysqlproxy+双主复制————MMM(mysql主主复制管理器)是一套灵活的脚本程序,用来对mysql replication进行监控和故障迁移?并能管理mysql Master-Master复制的配置 。附带的工具套件可以实现多个slaves的read负载均衡.两个mysql server服务器互为主从,MMM提供浮动IP的功能,如果当前的主服务器挂掉后,客户端的读写请求会通过漂移的虚拟IP自动转移到另一台服务器上,从而自动实现服务器的故障转移,mysqlproxy实现了读写分离。
适用场景:这个方案是目前比较成熟的解决方案,适用于数据库访问量大,业务增长快的场景。适用于读/写比较高的web2.0应用中。
优点:安全性、稳定性高,可扩展性好,高可用好,当主服务器挂掉以后,另一个主立即接管,其他的从服务器能自动切换,不用人工干预。
缺点:至少三个节点,对主机的数量有要求,对于实时性很高的场合可能需要做一些处理。
mysqlprox与mysql MMM集成的必要性:实现mysql数据库层的负载均衡;数据库节点实现HA动态切换;读写分离,降低主数据库负载
9,什么是裸设备,他的好处是什么?,mysql支持裸设备吗?
答:裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。
辨别:在/dev 目录下,裸设备使用字符特殊文件。
好处:因为使用裸设备避免了再经过Unix操作系统这一层,数据直接从Disk到Oracle进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。当然,这是以磁盘的 I/O 非常大,磁盘I/O已经称为系统瓶颈的情况下才成立。如果磁盘读写确实非常频繁,以至于磁盘读写成为系统瓶颈的情况成立,那么采用裸设备确实可以大大提高性能,最大甚至可以提高至40%,非常明显。
mysql支持裸设备。
10,如果给你一个100g的INNODB类型数据库,你会用什么备份方案来做备份。
答:豪鹫以前备份还原过一个82G左右的数据库,使用mysqldump命令导出,然后再使用mysql命令导进去,mysqldump命令导出整个数据库的数据大概需要20~30分钟,再通过mysql导入到新库,需要两天一夜,效率确实太低了。
这里推荐给大家一个mysql的备份工具:Xtrabackup,它有两个主要的工具:xtrabackup、innobackupex。xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表。innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的 同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁。
11,写一个简单的shell脚本,脚本运行时让CTRL+C无法中断的该shell脚本?
答:这里先做一个简单的介绍,在shell脚本中用trap命令捕获SIGINT信号就可以做到忽略系统传输的中断信号,比如,ctrl+c产生的中断信号。
系统给出的SIGINT信号数字为2或者直接写信号名称也可以
豪鹫这里给出一个简单的例子吧,脚本如下:
[root@haojiu ~]# cat vmstat.sh
#!/bin/bash
#script usinf for ignore system sigint.
#create by haojiu.
#date 2015-x-x
#在循环执行命令前面使用trap "" 2或者trap "" SIGINT,两者任选其一
#trap "" 2
trap "" SIGINT
vmstat 2 10
通常情况下,如果没有加入trap "" 2或者trap "" SIGINT这条命令时,直接执行vmstat 2 10,在脚本的执行过程中,是可以通过按住CTRL+C来中断脚本的运行的,但如果加入trap命令之后,脚本在执行过程中会忽略收到的信号SIGINT,而不做任何处理。
13、具体说说cacti/nagios 的安装过程?cacti如何监控mysql?
答:豪鹫简单说下两者的安装过程吧,近两年还有比较热门的zabbix,这个我没用过,所以不好在这里吹。下面简单列出cacti和nagios的安装步骤吧;
cacti安装步骤:首先安装好lamp环境(建议都使用编译安装)和snmp服务,rrdtool工具安装,然后建立cacti库和登录mysql账号,并赋权;其次下载并解压cacti到web server的htdocs或html目录下,确保敲入http://IP:port/cacti能被访问到,进而在web上安装cacti,修改web页面上的snmp团体字,确保跟snmpd.conf的团体字一致,然后再手动执行php poller.php看看能否在rra目录下生成.rrd文件,默认只监控本机资源,将php.poller.php命令写入到crontab中,每5分钟执行一次,如果需要监控远程主机,需要在对方主机安装snmp服务,并且保证snmp的团体字与监控主机上的snmp团体字是一致的;最后,添加其他监控主机,添加模板,安装插件等一系列工作。
nagios安装步骤:首先同样安装好lamp环境(建议使用编译安装),然后下载并安装nagios和nagios-plugin,整合apache和naigos,并创建web登录账号验证,确保敲入http://IP:port/nagios能正常访问并登录,远程主机安装nrpe或NClient++;最后添加配置远程主机信息,报警功能实现,添加所需的监控指标等工作。
cacti监控mysql:首先到cacti的论坛上下载cacti监控mysql的模板,然后导入到cacti中,然后添加主机,选择应用模板,最后等待5分钟,看看是否监控正常。
14、sed和awk命令的区别?
答:
A.sed是行编辑器,awk是列编辑器;
B.awk适合对文件的截取整理,sed适合对文件的编辑;
C.如果文件内容是具有固定格式的,即由分隔符分为多个(列)域的,比较适合使用awk;