史上高频率linux面试题
面试题:
1.常说的1U,2U,3U,4U服务器是什么意思?
这是指的服务器大小规格
1U=4.45cm
2U=8.9cm
3U=4.45cm * 3
4U=4.45cm * 4
这指的是服务器的高度
2.服务器的种类有哪些?
1)机架式服务器
2)刀片服务器
3)塔式服务器
4)机柜式服务器
3.常用服务的端口?
HTTP: 80 FTP: 21 DNS: 53 POP3:110 SMTP: 25
SSH: 22 NGINX: 80 SQUID: 3128 NAGIOS: 5666 MEMCHACHED:11211
MYSQL: 3306 TOMCAT: 8080 NFS: 2049 TLENET: 23 HTTPS:443
SAMBA: UDP 138 TCP 139 POSTFIX: 25 IMAP: 143 zabbix:10051 cacti:
DHCP:68
4.各RAID级别最少需要的硬盘数量:RAID0,RAID1,RAID5:
RAID0= 2 RAID1= 2 RAID5=3
5.简述More和 less命令的区别?
More 不能往前翻页,less 可以往前翻页
6.如何在 Linux 中永久设置网络信息, IP:192.168.1.10 , 子网掩码: 255.255.255.0
网关:192.168.1.1?
答: vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
7.如何关闭防火墙和SELinux?
答:
(1)CentOS6:
/etc/init.d/iptables stop
永久关闭:
chconfig iptables on
(2)Centos7 关闭firewall:
停止firewall服务:systemctl stop firewalld.service
禁止firewall开机启动:systemctl disable firewalld.service
查看默认防火墙状态(关闭后显示notrunning,开启后显示running):firewall-cmd --state
(3)关闭SELinux,默认情况下未开启
#查看selinux状态
sestatus
SELinux status: enabled
#永久禁用,需要重启生效。
vim /etc/selinux/config
改SELINUX=disabled
# 保存退出,重启服务器
reboot
# 临时禁用,不需要重启
setenforce 0
8.查看内存运行状态的命令是什么?Linux 中管道 “|”的作用。
答: free ,
管道:将前一个命令的输出结果,交由后面命令处理,当做后面命令的参数
9.什么是 CDN?
答案:CDN 的全称是内容分发网络。其目的是通过在现有的 Internet 中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。 CDN 有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流量导流。因而,CDN 可以明显提高 Internet 网络中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。
10.简述实现 SSH 密钥对验证的基本过程。
答案
1)用户在客户端生成密钥对;
2)用户将公钥上传至目标服务器;
3)在服务器上将用户上传的公钥导入到指定用户的~/.ssh/authorized_keys 中;
4)客户端连接验证。
11. iptables 默认的规则链有哪些,各自的作用是什么 ?
参考答案
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发的数据包
POSTROUTING:路由选择之后处理
PREROUTING:路由选择之前处理
12.监控描述 Nagios 与 与 Cacti 的区别
参考答案
Cacti:在监控方面绘图比较不错,在流量与图型展现比较存在优势;
Nagios:在故障分析比较不错,报警机制相对来说比较好,
报警机制:邮箱、短信等,而且也比 Cacti 灵活;同时
适用监控大量服务器以及服务器上面大批服务状态是否正常,重点不在图形化,而在状态故障的监控。
13. 简单描述 Zabbix 具有哪些监控功能
参考答案
具备常见的商业监控软件所具备的功能
主机性能监控、网络设备监控、数据库监控等
支持多种报警机制
支持自动发现网络设备和服务器
可以通过配置自动发现服务器规则来实现
支持分布式,能集中展示、管理分布式的监控点
编写插件容易,可以自定义监控项
具有实时绘图功能
14. Nagios 的系统特点 ?
答案:
(1) 监控主机资源和网络服务
(2) 允许用户通过设计实现简单的插件来监控自己特定的服务
(3) 当被监控对象出现问题时,会及时通知管理人员
(4) 事先定义时间处理程序,当对象出现问题时自动调用对应用的处理程序
(5) 通过 Web 页面来监视对象状态,警告提示和日志文件。
15.LVS 的负载平衡方式有哪些?
参考答案
VS/NAT:通过网络地址转换实现的虚拟服务器。Director 将用户请求报文的
目的地址改成选定的 Real Server 地址后,转发给 Real Server。大并发
访问时,调度器的性能成为瓶颈。
VS/DR:直接使用路由技术实现虚拟服务器。通过改写请求报文的 MAC 地址,
将请求发至 Real Server,Real Server
直接响应客户端。
VS/TUN:通过隧道方式实现虚拟服务器。Director 采用隧道技术将请求发至
Real Server 后,Real Server 直接响应客户端。
16. Linux 系统中 /etc/hosts 文件的作用?
答案 : :
Linux 的/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。
不同的 linux 版本,这个配置文件也可能不同。比如 Debian 的对应文件是/etc/hostname。
17 ,每天晚上 00 : 00 执行 mysql 数据备份,请写出 crontab 配置项
答案: 0 0 * * * mysqldump -uroot -p123456 --flush-logs 数据库名 > 备份文件名
18 ,写一个 mysql 管理启动停止的脚本, mysql 安装路径 /opt/mysql
答案:
19, 查看 iptables 默认策略的指令是什么?
答案: iptables -L
20 , iptables 开放端口 80 端口的语句怎么写?
答案: iptables -I INPUT -p tcp --dport 80 -j ACCEPT
21.TCP 和 UDP 的区别是什么 ?
答案:
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之
间建立一个 TCP 连接,之后才能传输数据。TCP 提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP 不提供可靠性,它只是把应用程序传给 IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于 UDP 在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
22.写出几个Nginx的常用模块,并描述其功能?
1)http_ssl_module
实现服务器加密传输模块,部署完成后可以使用https://协议进行数据传输,
保证数据传输过程的安全。
2)http_image_filter_module
通过该模块以实现图片裁剪,将过大的图片裁剪为指定大小的图片,生成缩省略图,
保证传输速率,该选项默认不开启,需要人为指定。
image_filter_resize $h $w;
3)http_rewrite_module
Nginx的地址重写模块,功能同Apache的一样,可以实现通过正则匹配来完成条件判断,
然后进行域名或url的重写。例如:多域名、http--> https
4)http_proxy_module
Nginx的反向代理功能,由于Nginx的高并发特性,很多时候我们都选择使用Nginx作为
网站的前置服务器,一般会和upstream模块一起使用,完成压力分摊工作。
5)http_upstream_module
Nginx的负载均衡模块,一般和http_proxy模块一起使用,用来对后台服务器的任务
调度及分配,分配原则可以通过算法进行控制。常见模式:Nginx+Apache、Nginx+Tomcat
23. 编译源码包过程介绍。
采用源码包编译的方式安装软件包时,有哪些基本过程、各自的作用是什么?
参考答案
tar 解包:解压、释放安装包内的文件
./configure 配置:针对当前系统环境指定安装目录、选择功能等设置。
make 编译:将源代码编译成二进制的可执行程序、库文件等数据。
make install:将编译好的程序文件、配置文档等复制到对应的安装目录。
24.请解释Nginx是如何连接PHP进行页面解析的?
Nginx支持PHP
1)Nginx支持fastCGI功能(默认支持).
2)PHP编译时开启FPM服务(编译时指定)
3)在Nginx配置文件中添加匹配规则(匹配后缀是.php)
25.请描述Nginx和Tomcat之间的数据传输过程?
静态请求:由Nginx直接请求,请求完毕直接返回。
动态请求:由Nginx反向代理和负载均衡,均衡到两个Tomact上,
Tomact完成后返回Nginx,在返回数据。
26.请写出几个常见的HTTP状态码,并解释出现的原因?
http状态码分类:
HTTP状态码是五个不同的类别:
1**:信息,服务器收到请求,需要请求者继续执行操作
2**:成功,操作被成功接收并处理
3**:重定向,需要进一步的操作以完成请求
4**:客户端错误,请求包含语法错误或无法完成请求。
5**:服务器错误,服务器在处理请求的过程中发生了错误。
状态码 状态码英文名称 中文描述
400 Bad Request 客户端请求的语法错误,服务器无法解释
404 Not Found 服务器无法根据客户端的请求找到资源(网页).
405 Method Not Allowed 客户端请求中的方法被禁止
500 Internal Server Error 服务器内部错误,无法完成请求
503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。
504 Gateway Time-out 充当网关或处理的服务器,未及时从远端服务器获取请求
505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理
27.mysql一主多从,主库宕机,如何合理切换到从库,其它从库如何处理?
mysql主从工作原理?
技术点:bin-log日志
开启主服务器的bin-log日志记录功能,将主服务的bin-log日志传到从服务器,
从服务器根据日志内容将数据还原到本地。
主从服务器:
从服务器主动把主服务器上的数据同步到本地(备份).
主服务器授权从服务器。
Bin-log日志:只记载数据修改的数据。
有两个线程,一个连接线程,从服务器连接主服务器。下载日志文件。
解析线程:下载的日志文件进行解析,对解析的数据进行解析。
主从故障切换:
1)登陆所有从库查看post信息,使用POST最大的做为新的主库,然后将从库提升为
新的主库,登陆从库(新的主库)执行stop slave。
2)修改my.cnf 配置文件,开启log-bin并重新启动数据库服务,登陆数据库执行
restet master,show master status\G;查看主库信息,最后创建授权同步用户与
权限和网站使用数据库的用户与权限,最后修改对应服务器的IP地址等信息。
3)登陆其他从库,执行change master 操作,查看同步状态。
28.简述网络文件系统NFS,并说明其作用?
网络文件系统是应用层的一种应用服务,它主要应用于 Linux 和 Linux 系统、
Linux 和 Unix 系统之间的文件或目录的共享。对于用户而言可以通过 NFS
方便的访问远地的文件系统,使之成为本地文件系统的一部分。采用 NFS 之后
省去了登录的过程,方便了用户访问系统资源。
29.RAID的含义及优势?RAID0、RAID1、RAID5分别指什么,各自的特点?
1)RAID:廉价冗余磁盘阵列,指通过硬件/软件技术将多个较小/低速的
磁盘整合成一个大磁盘使用的一种存储技术,其不仅可存储数据,还可
以实现一定程度的冗余保障,具有“速度快、安全性高”的优势。
2)RAID0、RAID1、RAID5 的含义及特点如下:
RAID0:条带模式,由两个或两个以上的磁盘组成,同一份文档分散在
不同的磁盘中,并行写入,提高写效率。
RAID1:镜像模式,由至少两个磁盘组成,同一份文件被分别写入到
不同的磁盘中,每份磁盘数据一样,实现容错,
提高读效率。
RAID5:分布式奇偶校验的独立磁盘模式,结合 RAID0 和 RAID1 的
好处,同时避免它们的缺点。由至少 3 块以上大小相同的磁盘组成,实现冗余。
30. httpd 有几种工作模式,每种模式的简单区别?
答案:2种;
最主要的两种模式是 prefork 模式与 worker 模式。prefork 每个子进程只有一个线
程,效率高但消耗内存大,是 unix 下默认的模式;worker 模式每个子进程有多个线程,
内存消耗低,但一个线程崩溃会牵连其它同子进程的线程。
31.设置数据库管理员从本机登录的密码为 888
答案:mysqladmin -hlocalhost -uroot -p password "888"
32. MySQL 如何给 testuser 用户对 testdb 数据库所有表授权访问,密码为 testpwd ,请写出命令?
答案: grant all on testdb.* to testuser@"localhost" identified by "testpwd"
33.授权管理员用户可以在网络中的所有主机登录,对所有库 、表有完全权限且有授权的权限、 登陆密码
tarena
答案:
mysql -hlocalhost -uroot -p999
grant all on *.* to root@"%" identified by "tarena"
with grant option;
34. 只允许数据库管理员从数据库服务器本机登录且有授权的权限 , 登录的密码 123plj456 。
答案:
mysql -h192.168.4.5 -uroot -ptarena
grant all on *.* to root@"localhost" identified by "123plj456" with grant option;
quit
mysql -hlocalhost -uroot -p123plj456
delete from mysql.user where host!="localhost";
flush privileges;
35.当文件系统受到破坏时,如何检查和修复系统?
参考答案:
成功修复文件系统的前提是要有两个以上的主文件系统,并保证在修复之前首先卸载将被修复的文件系统。
使用命令 fsck 对受到破坏的文件系统进行修复。fsck 检查文件系统分为 5 步,每一步检查系统不同部分的连接特性并对上一步进行验证和修改。在执行 fsck 命令时,检查首先从超级块开始,然后是分配的磁盘块、路径名、目录的连接性、链接数目以及空闲块链表、i-node。
36.进程的查看和调度分别使用什么命令?
参考答案:
进程查看的命令是 ps 和 top。
进程调度的命令有 at,crontab,batch,kill。
37.解释i节点在文件系统中的作用。
参考答案:
在 linux 文件系统中,是以块为单位存储信息的,为了找到某一个文件在存储空间中存放的位置,用i节点对一个文件进行索引。I 节点包含了描述一个文件所必须的全部信息。所以 i 节点是文件系统管理的一个数据结构。
38.什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
参考答案:
链接分硬链接和符号链接。
符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。符号链接的文件类型位是 l,链接文件具有新的 i 节点。
硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的 i 节点同被链接文件的 i 节点相同。
39.试解释 apache 服务器以下配置的含义:
(1)port 1080 (2)UserDir userdoc
(3)DocumentRoot “/home/htdocs”
(4)<Directory /home/htdocs/inside>;
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
deny from all
allow from 192.168.1.5
</Directory>;
(5)Server Type Standlone
参考答案:
Apache 服务器配置行含义如下:
(1)将 apache 服务器的端口号设定为 1080;
(2)设定用户网页目录为 userdoc;
(3)设定 apache 服务器的网页根目录:/home/htdocs;
(4)在此 apache 服务器上设定一个目录/home/htdocs/inside,且此目录只允许 IP 地址为 192.168.1.5
的主机访问;
(5)定义 apache 服务器以独立进程的方式运行。
40.列出你常用的10个linux命令
答案: cd 、ls 、pwd、du 、free、less、mkdir、touch、vim 、useradd
41.linux 下面压缩的命令有哪些
答案: tar gzip bzip2 zip air
42.在linux 系统中如何重新启动网络服务
答案: /etc/init.d/network restart
service network restart
43.按照以下要求配置一个防火墙规则
1.对所有地址开放本服务器的 80 端口、22 端口、10~21 端口。
2.其他机器可以用 ping 命令来探测本服务器的链接情况
3.其他没有被准许的端口将禁止访问
iptables -I INPUT -p tcp -dport 80 -j ACCEPT
iptables -I INPUT -p tcp -dport 22 -j ACCEPT
iptables -I INPUT -P tcp -dport 10:21 -i ACCEPT
iptables -I INPUT -p icmp -j ACCEPT
iptables -I INPUT -j REJECT
44.查看http的并发请求数与其TCP 连接状态
netstat -n | awk '/^tcp/ {++b[$NF]} END {for(a in b) print a, b[a]}'
45.查看当前系统每个IP 的连接数
netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' | sort | uniq -c | sort -rn
46.统计出apache的access.log 中访问量最多的5个IP
cat access_log | awk '{print $1}' | sort | uniq -c | sort -n -r | head -5
47.CentOS 查看/监测网卡流量的命令
watch more /proc/net/dev
48.写一个脚本,实现判断192.168.1.0/24 网络里,当前在线的IP 有哪些
#!/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
49.简单叙述tcp协议的三次握手过程
第一次握手:客户机向服务器发送一个 syn 的数据包,进入 SYN_SEND 状态;
第二次握手:服务器收到包,确认之后,向客户机返回一个 ack(和一个 syn,此时的服务器处于 SYN_RECV 状态;
第三次握手:客户端收到了服务器返回的 syn+ack 之后,再向服务器发送一个 ack,这时候服务器和客户机的链接状态是 ESTABLISHED
50.缺省安装的 nginx + php-fpm 环境,假设用户浏览一个耗时的网页,但是却在服务端渲染页面的中途关闭了浏览器,那么请问服务端的 php 脚本是继续执行还是退出执行?
答:正常情况下,如果客户端 client 异常退出了,服务端的程序还是会继续执行,直到与 IO 进行了两次交互操作。服务端发现客户端已经断开连接,这个时候会触发一个 user_abort,如果这个没有设置 ignore_user_abort,那么这个 php-fpm 的程序才会被中断。
51.请描述IP地址的分类及每一类的范围
参考答案
A 类 1-26
B 类 128-191
C 类 192-223
D 类 224-239 组播(多播)
E 类 240-254 科研
52.请描述预留给企业的私有网络使用的私有IP有哪三段
参考答案
A 类 10.0.0.1-10.255.255.254
B 类 172.16.0.1-172.16.31.254
C 类 192.168.0.1-192.168.255.254
53.请描述http及https分别是什么协议、作用及端口号
参考答案
HTTP:超文本传输协议,用于传输 Internet 浏览器使用的普通文本、超文本、音频和视频等数据,端口号为 TCP的 80。
HTTPS:安全超文本传输协议,基于 HTTP 开发,提供加密,可以确保消息的私有性和完整性,端口号为 443 工作区子系统。
54.Linux 目录结构介绍。
Linux 系统的根目录下主要包括哪些文件夹,各自的作用是什么?
参考答案
/boot:存放 Linux 内核、引导配置等启动文件。
/bin:存放最基本的用户命令,普通用户有权限执行。
/dev:存放硬盘、键盘、鼠标、光驱等各种设备文件。
/etc:存放各种配置文件、配置目录。
/home:存放普通用户的默认工作文件夹(即宿主目录、家目录)。
/root:Linux 系统管理员(超级用户)root 的宿主目录。
/sbin:存放最基本的管理命令,一般管理员用户才有权限执行。
/usr:存放额外安装的应用程序、源码编译文件、文档等各种用户资料。
/var:存放日志文件、用户邮箱目录、进程运行数据等变化的文档。
/tmp:存放系统运行过程中使用的一些临时文件。
55.. 描述 Linux 运行级别 0-6 的各自含义
0:关机模式
1:单用户模式<==破解 root 密码
2:无网络支持的多用户模式
3:有网络支持的多用户模式(文本模式,工作中最常用的模式)
4:保留,未使用
5:有网络支持的 X-windows 支持多用户模式(桌面)
6: 重新引导系统,即重启
56.描述 Linux 系统从开机到登陆界面的启动过程
⑴开机 BIOS 自检,加载硬盘。
⑵读取 MBR,MBR 引导。
⑶grub 引导菜单(Boot Loader)。
⑷加载内核 kernel。
⑸启动 init 进程,依据 inittab 文件设定运行级别
⑹init 进程,执行 rc.sysinit 文件。
⑺启动内核模块,执行不同级别的脚本程序。
⑻执行/etc/rc.d/rc.local
⑼启动 mingetty,进入系统登陆界面。
57.请描述 Linux 系统优化的 12 个步骤。
⑴登录系统:不使用 root 登录,通过 sudo 授权管理,使用普通用户登录。
⑵禁止 SSH 远程:更改默认的远程连接 SSH 服务及禁止 root 远程连接。
⑶时间同步:定时自动更新服务器时间。
⑷配置 yum 更新源,从国内更新下载安装 rpm 包。
⑸关闭 selinux 及 iptables(iptables 工作场景如有 wan ip,一般要打开,高并发除外)
⑹调整文件描述符数量,进程及文件的打开都会消耗文件描述符。
⑺定时自动清理/var/spool/clientmquene/目录垃圾文件,防止节点被占满(c6.4 默认没有 sendmail,因此可以不配。)
⑻精简开机启动服务(crond、sshd、network、rsyslog)
⑼Linux 内核参数优化/etc/sysctl.conf,执行 sysct -p 生效。
更改字符集,支持中文,但是还是建议使用英文,防止乱码问题出现。
⑾锁定关键系统文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 处理以上
内容后,把 chatter 改名,就更安全了。
⑿清空/etc/issue,去除系统及内核版本登陆前的屏幕显示。
58.请描述下列路径的内容是做什么的?
/var/log/messages 系统日志文件
/var/log/secure 系统安全文件(显示登录信息的文件)
/var/spool/clientmqueue 例行性任务回执邮件存放文件
/proc/interrupts 当前系统中断报告文件
/etc/fstab 开机自动挂载磁盘的配置文件
/etc/profile 环境变量存放的文件
59. 简述DNS进行域名解析的过程。
参考答案:
首先,客户端发出 DNS 请求翻译 IP 地址或主机名。DNS 服务器在收到客户机的请求后:
(1)检查 DNS 服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;
(2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;
(3)若没有查到,则将请求发给根域 DNS 服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查
找三级,直至找到要解析的地址或名字,即向客户机所在网络的 DNS 服务器发出应答信息,DNS 服务器收到
应答后现在缓存中存储,然后,将解析结果发给客户机。
(4)若没有找到,则返回错误信息。
60.部署实施 CDN 的优势是什么
参考答案
本地 Cache 加速,提升访问速度和稳定性
网站镜像,消除不同地区、运营商网络互连的问题
智能 DNS 解析,自动选择最快的 Cache 服务器
负载优化,减轻后端源 Web 服务器的压力负载
集群抗攻击,有效降低 DDOS 攻击的影响
61.什么是读写分离 ?
MySQL Proxy 最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理 SELECT 查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。当然,主服务器也可以提供查询服务。使用读写分离最大的作用无非是缓解主服务器压力。
62.读写分离的好处
1.增加冗余
2.增加了机器的处理能力
3.对于读操作为主的应用,使用读写分离是最好的场景,因为可以确保写的服务器压力更小,而读又可以接受点时间上的延迟。
63.什么是 VPN ?
答案:
VPN(Virtual Private Network,虚拟私有网)
以共享的公共网络为基础,构建私有的专用网络以虚拟的连接,而非以物理连接贯通网络处于私有的管理策略之下,具有独立的地址和路由规划。
64.VPN的 优势?
答案:
可以快速构建网络,减小布署周期与私有网络一样提供安全性,可靠性和可管理性
可利用 Internet,无处不连通,处处可接入简化用户侧的配置和维护工作提高基础资源利用率与客户可节约使用开销与运营商可以有效利用基础设施,提供大量、多种业务
65.讲述一下cookie 和session 的区别。
cookie 机制采用的是在客户端保持状态的方案,而 session 机制采用的是在服务器端保持状态的方案。
cookie 不是很安全,别人可以分析存放在本地的 cookie 并进行 cookie 欺骗,考虑到安全应当使用 session。
session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用 COOKIE。
单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie。
66.缺省安装的 nginx + php-fpm 环境,假设用户浏览一个耗时的网页,但是却在服务端渲染页面的中途
关闭了浏览器,那么请问服务端的 php 脚本是继续执行还是退出执行?
【解答】正常情况下,如果客户端 client 异常退出了,服务端的程序还是会继续执行,直到与 IO 进行了两次交互操作。服务端发现客户端已经断开连接,这个时候会触发一个 user_abort,如果这个没有设置 ignore_user_abort,那么这个 php-fpm 的程序才会被中断。
67.首先, Nginx 日志格式中的 $time_local 表示的是什么时间?请求开始的时间?请求结束的时间?其次,当我们从前到后观察日志中的 $time_local 时间时,有时候会发现时间顺序前后错乱的现象,请说明原因。
【解答】$time_local:在服务器里请求开始写入本地的时间,因为请求发生时间有前有后,所以会时间顺序前后错乱。
68.在Nginx+PHP , 环境中,Web错误日志里偶尔会出现如下错误信息: 「 recv() failed (104: Connection resetby peer) while reading response header from upstream 」,请分析可能的原因是什么。
【解答】遇到这种情况,第一解决方法是重启 php 服务,service php5-fpm restart,但是这个治标不治本,相对治 本 的 方 法 是 把 php 的 pm.max_requests 值 改 大 一 点 , 比 如 500; 第 二 个 方 法 , 修 改 php-fpm 的request_terminate_timeout,把值改成=0。
这个情况要看后端的 php,要么是链接不上,要么是 php 服务挂了,要么就是链接超时。
worker 数不够挂掉就会 504,worker 处理超时就会 502。
69.已知Nginx 和 PHP-FPM 安装在同一台服务器上,Nginx 接连接 PHP-FPM 有两种方式:一种是类似
127.0.0.1:9000 的 TCP socket ;另一种是类似 /tmp/php- -k fpm.sock 的Unix domain socket 。请问如何选择,需要
注意什么。
【解答】Unix domain socket的流程不会走到TCP 那层,直接以文件形式,以stream socket通讯。如果是TCP socket,则需要走到 IP 层。说的通俗一点,追求可靠性就是 tcp(需要占用一个端口,更稳),追求高性能就是 Unix Socket(不需要占用端口,更快)。
70.在Nginx 中,请说明Rewrite 模块里break和last的区别。
【解答】官方文档的定义如下:
last:停止执行当前这一轮的 ngx_http_rewrite_module 指令集,然后查找匹配改变后 URI 的新 location;
break:停止执行当前这一轮的 ngx_http_rewrite_module 指令集;
千言万语举个例子:
location /test1.txt/ {
rewrite /test1.txt/ /test2.txt break;
}
location ~ test2.txt {
return 508;
}
使 用 break 会 匹 配 两 次 URL , 如 果 没 有 满 足 项 , 就 会 停 止 匹 配 下 面 的 location, 直 接 发 起 请 求
www.xxx.com/test2.txt,由于不存在文件 test2.txt,则会直接显示 404。
使用 last 的话,会继续搜索下面是否有符合条件(符合重写后的/test2.txt 请求)的 location,匹配十次,如果十次没有得到的结果,那么就跟 break 一样了。返回上面的例子,/test2.txt 刚好与面 location 的条件对应上了,进入花括号{}里面的代码执行,这里会返回 508。(这里的 508 是我自己随便设定的)
71.有时候 nginx运行很正常,但是会发现错误日志中依旧有报错 connect() failed (111: Connection refused) while connecting to upstream. 请问肿么办?
【解答】一般情况下我们的 upstream 都是 fastcgi://127.0.0.1:9000. 造成这个问题的原因大致有两个:
1)php-fpm 没有运行:执行#netstat -ant | grep 9000 命令查看是否启动了 php-fpm,如果没有则启动你的 php-fpm即可,
2)php-fpm 队列满了:php-fpm.conf 配置文件 pm.max_children 修改大一点,重启 php-fpm 并观察日志情况。
72.简单描述一下nginx里 root 和 和 alias的区别。
【解答】root 与 alias 主要区别在于 nginx 如何解释 location 后面的 uri,这会使两者分别以不同的方式将请求
映射到服务器文件上。root 是全路径定位,alias 是当前路径定位。
举个例子
location ~ ^/weblogs/
{
root /data/nginx/html;
autoindex on;
}
这里匹配是分大小以/weblogs 的路径,当在浏览器地址栏申请/weblogs/a/b/c/123.txt 的时候,服务器查找的是/data/nginx/html/weblogs/a/b/c/123.txt 文件,并把它重现给 web 服务器,这就是全路径定位,即完整的 URI映射。
location ^~ /binapp/ {
internal;
alias /data/nginx/conf/html/;
}
这时候浏览器地址栏申请/binapp/a/456.jpg 的时候,服务器查找的是/data/nginx/conf/html/a/456.jpg,看到了吗!没有 location 后面的直连的/binapp/了,也就是说 alias 会把 location 后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。
注意!使用 alias 时,目录名后面一定要加"/",否则会找不到文件,而 root 不一定。
73.什么是keepalived?
keepalived高可用对之间是通过VRRP通信的,因此,我从VRRP开始给您讲起.
1)VRRP,全称Virtual Router Reduancy Protocol,中文名为虚拟路由器冗余协议,VRRP的出现是为了解决静态路由的单点故障,
2)VRRP是通过一种竞选协议来将路由任务交给某台VRRP路由器的,
3)VRRP用IP多播的方式,(默认多播地址(224.0.0.18))实现高可用对之间通信.
4)工作时主节点发包,备节点接包,当备节点接收不到主节点发的包的时候,就启动接管程序接管主节点的资源.备节点可以有多个,
通过优先级竞选,但一般keepalived系统运维工作中都是一对.
5)VRRP使用了加密协议加密数据,但keepalived官方目前还是推荐用明文的方式配置认证类型和密码.
介绍完了VRRP,接下来我在介绍一下keepalived服务的工作原理;
keepalived高可用对之间是通过VRRP进行通信的,VRRP是通过竞选机制来确定主备的,主的优先级高于备,
因此,工作时会优先获得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,
然后顶替主节点对外提供服务.
在keepalived服务对之间,只有作为主的服务器会一直发送VRRP广播包,告诉备他还活着,此时备不会抢占主,
当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性,
接管速度最快可以小于一秒。
74.为什么使用 LAMP?
答案: 因为 LAMP 具有 Web 资源丰富、轻量、快速开发等特点,与微软的.NET 架构相比,LAMP 具有通用、跨平
台、高性能、低价格优势、因此 LAMP 无论是性能、质量还是价格都是企业搭建网站的首选平台。
75.MySQL 数据库的服务进程叫什么名字?监听端口是多少?默认数据库目录是?
参考答案
服务进程名是 mysqld;监听端口是 3306;默认数据库目录为 /var/lib/mysql。
76.简述 MySQL 数据库访问的执行过程。
参考答案
1)客户端发出请求。
2)服务器端开辟线程响应客户端请求。
3)客户端发起 sql 语句查询数据库。
4)查询缓存:记录用户的 sql 查询语句,如果查询内容相同,直接从查询缓存回复。
5)如果缓存没有进入分析器。
6)分析器:分析用户命令语法是否正确,将用户的命令进行切片,一个词一个词用空格隔开,获得用户要查询的
表、内容、用户的权限等。
7)优化器:执行路径的选择,生成执行树。(每个 SQL 语句都有很多执行路径,优化的目的就是在这些执行路径
里选择最优的执行路径)。
8)存储引擎:用于管理存储的文件系统,不同的存储引擎有不同的功能和存储方式。
77.,Nginx 的优点?
答案:
(1) 它可以高并发连接:官方测试连接数(5 万)实际生产环境中可支撑(2~4 万)
(2) 内存消耗少
(3) 成本低廉
(4) 其他理由(配置文件非常简单,支持 Rewrite 重写规则)
(5) 内置的健康检查功能
(6) 节省宽带(支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头)
(7) 稳定性高
(8) 支持热部署
78.Nginx 和 Apache 的综合对比?
Web 服务器 Nginx Apache
反向代理 非常好 好
Rewrite 规则 非常好 好
FastCGI 好 差
热部署 支持 不支持
系统压力比较 很小 小
稳定性 非常好 好
安全性 一般 好
技术资料 很少 非常多
静态文件处理 非常好 一般
虚拟主机 支持 支持
内存消耗 非常小 很大
79.搜索文件用什么命令? 格式是怎么样的?
答案:
find <指定目录> <指定条件> <指定动作>
whereis 加参数与文件名
locate 只加文件名
find 直接搜索磁盘,较慢。
find / -name "string*"