linux'面试集锦

您所在的位置:网站首页 nginx4层负载 linux'面试集锦

linux'面试集锦

2023-05-08 16:15| 来源: 网络整理| 查看: 265

mysql主从复制的过程简述

1、主库接受到更新命令,执行更新操作,生成binlog

2、从库开启一个I/O线程与主库dump_thread建立连接

3、主库dump_thread从本地读取binlog传送给从库

4、从库从主库获取到binlog后存储到本地,成为relay log,并将读取到的binlog文件名和位置保存到master-info文件

5、sql_thread线程读取relay log解析、执行命令更新数据

MySQL主从故障切换后,如何恢复主从复制?

记录master位置,切换架构为BA,保证业务,恢复前记录position结束位置,最后通过二进制日志文件进行恢复

引起主从延迟的常见原因

常见原因:Master、Slave负载过高、网络延迟、机器性能低、MySQL配置不合理。

lvs和nginx的区别

Lvs是位于4层,抗负载能力强,应用广泛

Nginx4、7层都可以做,对网络依赖性小,稳定,支持正则、目录等。还是一个web服务器,缓存服务器

nginx正向代理和反向代理区别以及列举 nginx作为反向代理的负载均衡算法和常用模块

正向代理即是客户端代理, 服务端不知道实际发起请求的客户端反向代理即是服务端代理, 客户端不知道实际提供服务的服务端

算法:轮询;权重;ip_hash;fair;url_hash

常用模块:rewrite重写模块

access来源控制模块

ssl安全模块

status监控模块

proxy前端代理模块

upstream后端代理模块

说出下面HTTP返回码的意义

200:请求成功    301:被请求资源永久重定向    302:请求资源临时重定向

404:页面找不到    500:内部服务器错误    502:网关无效

503:服务器不可用    504:网关超时

Rsync+inotify和Rsync+crontab区别

Rsync+inotify是实时备份    

Rsync+crontab是定时备份

svn和Git区别

svn是集中式版本控制系统,git是分布式版本控制系统。

svn主要是项目管理,git主要是代码管理。

svn由项目经理协调多个项目统筹开发,git通过网络多人开发同一项目。

分别简述harbor和ansible工具是用来做啥的

harbor是私有镜像仓库    

ansible是批量管理工具

假如让你负责监控工具建设,例如zabbix,说说你的思路

系统级——内存,cpu,硬盘,进程数,tcp状态应用级——监控服务,端口,status模块网络级——监控url

zabbix监控分几种模式,分那几个组成部分?

两种:主动模式和被动模式

主动是agent向server发送请求

被动是server向agent发送请求

 

五部分

zabbix web GUI  web界面zabbix database  数据存储zabbix server   服务端zabbix agent   客服端zabbix  proxy   代理

解释 ip地址,子网掩码,网关的意义

Ip地址:身份明确(通信时使用)

子网掩码:组织明确(通信时所属网段的明确)

网关:边塞明确(不同网段之间通信进出口)

讲解一下raid0 raid1 raid5 raid1 0的区别

Raid 0 最少需要两块磁盘

性能极佳,无冗余

适用于个人及日志存储

RAID 1的特点:

最少需要2块磁盘,偶数盘

100%冗余

读写一般

适用于重要数据存放,如数据库服务器

 

Raid 5

3块盘起步

兼顾冗余,损失1块盘,读还行,写一般

适用于金融、数据库存储

 

Raid 1 0

最少4块盘

性能特佳,100%冗余

适用于对性能和冗余高要求的业务实现

假设目前的服务器规模是200台,说说你的管理思路,例如存储,监控,日志收集等。

跳板机统一登录审计

Ansible批量部署统一调度

cmdb信息管理界面,便于查阅

存储日志方面:

Es 4台

Logstash 小200台

Kibana 2 台

nginx除了可以作为代理以外还可以作为什么服务器

缓存和web

解释CDN意义

CDN是将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。适用于站点加速、点播、直播等场景

列举常用的关系型数据库和非关系型数据库,每类至少两个

关系型数据库:mysql,oracle,sql server非关系型数据库:redis,memcache,mongoDB

何为脑裂?介绍一下负载中脑裂发生的原因

高可用HA中,心跳线断裂、一分为二、两master抢资源、致系统崩溃、数据丢失

 

心跳线断裂

网卡配置有问题

防火墙阻挡心跳消息

其他服务配置不当

交换机故障所致

 

解决方案:

用以太网电缆串行连接两根心跳线

预防:做好监控报警,第一时间挽救,降低损失

新安装的Linux系统在安全和性能方面做哪些配置

国内yum

时间同步

内核优化(最大打开文件数修改 修改系统默认的TIMEOUT时间)

精简开机自启

防火墙配置

拒绝ping

ssh加速

画出大做维有限公司的网站架构图

 

dns原理,以访问百度为例

访问www.baidu.com,先访问本地缓存,有则返回,无则继续 向根域名解析服务器,接下来依次向一级/二级/三级域名解析服务器 找到资源存储到本地缓存并返回给客户

keepalvied的工作原理

Keepalived高可用是通过 VRRP进行通信, VRRP是通过竞选机制来确定主备,主优先级高于备,因此,工作时主会优先获得所有资源,备节点处于等待状态,当主宕机时,备节点接替主节点资源对外提供服务

memcache 和redis有什么区别

Redis支持数据持久化、丰富的 key/value

Memcache不支持数据持久化 较为简单的 key/value

redis支持的数据类型有哪些

字符串 哈希 列表 集合 有序集合

tomcat内存调优,XMX ,xms分别表示什么

Xmx:可用堆最大内存

Xms:初始化时堆的最小内存

tomcat的目录结构有哪些 nginx服务器上master和worker的区别 bin:命令目录 conf:配置文件目录 logs:日志目录 webapps:应用程序目录

master进程管理worker进程

负责判断配置文件的语法

worker进程处理事务请求

mysql安全方面你都做过哪些措施

删除数据库无用用户限权远程用户不在命令行界面输入数据库密码定期修改密码与加强密码的复杂度

mysql_secure_installation

--为root用户设置密码--删除匿名账号--取消root用户远程登录--删除test库和对test库的访问权限--刷新授权表使修改生效

mysql数据库你们是使用什么工具完成读写分离的

amoeba支持读写分离  

mycat支持读写分离

全备,增备,热备,温备、冷备分别阐述下你的理解

全备:备份数据库所有数据。 增备:在上次备份的基础上备份新增数据。 冷备:停机备份。

温备:服务在线,但仅支持读请求,不允许写请求。 热备:不停机备份

网站打开慢,请给出排查方法,如果是数据库导致的慢,如何排查。

首先检查dns域名解析、之后使用top来查看我们的网卡占用、如果有大的进程占用我们的网卡、kill -9 将其杀死、没有的话查看我们的日志文件,看是否有异常。

写过哪些shell脚本(列举5个)

防误删文件    巡检系统  防ddos攻击 status监控  系统优化    mysql备份

解释蓝绿部署、滚动部署、灰度发布

蓝绿部署: 旧版本不停,新版本进行测试,新版ok,将用户切换到新版本,同时更新旧版本滚动发布: 取出部分服务器更新,更新完后继续使用,循环往复,直至全部更新完灰度发布:

ABtest为例,一部分A继续用,一部分测试B,B无问题,A的迁移至B上

Squid、Varinsh和Nginx 做缓存有什么区别

SQUID 是功能最全面的,但是架构古老,性能普通

Varnish 是速度一流的内存缓存,适合缓存页面和图片

Nginx 用了插件可以做缓存,只能缓存静态页面

什么是中间件,什么是JDK。

将具体业务和底层逻辑解耦的组件

jdk是Java的开发工具包

MySQL 主从延时很大怎么办?

修改配置减少延迟(设置sync_binlog=0|关闭binlog,提高sql执行效率)

使用更好的硬件设备作为slave

加入缓存,降低mysql压力

DDOS应该怎么防?

  在短时间内发起大量请求,耗尽服务器的资源,无法响应正常的访问,造成网站实质下线

流量清洗(针对DDoS攻击的监控、告警和防护的一种网络安全服务)备份网站HTTP 请求的拦截带宽扩容CDN加速

啥是僵尸进程?如何查看?

defunct进程的出现时间是在子进程终止后,但是父进程尚未读取

我们用top命令查看zombie或者ps aux | grep Z会列出进程表中所有僵尸进程的详细内容

ICMP是几层协议?

3层网络层协议

啥是静态网页,啥是动态网页。

静态网页是一经制成,内容不再变化, 如html

动态网页是内容可以变化,如 jsp php

Linux中文件 inode?   linux inode满了怎么办?

Inode就是索引节点,是储存文件元信息的区域

删除无用的临时文件

Linux 里软连接和硬链接区别。

硬链接是复制原文件且互通

软链接相当于快捷方式

Linux交换分区swap和物理内存的区别。

物理内存,从物理内存条获取的内存空间

交换分区:内存不足时将磁盘中的一部分空间释放出来,供当前运行的程序使用。

列出 LINUX 常见打包工具并写相应解压缩参数(至少三种) tar  gzip2 bzip xz gzip -c FILE > FILE.gz保留源文件压缩 tar xf FILE

bzip2 -c FILE > FILE.bz2

xz -c FILE > FILE.xz

计划任务,每周六,14 ,16 ,18 执行备份脚本定时任务如何写

crontab -e

* 14,16,18 * * 6 sh /root/a.sh

iptables开放DNS服务,命令如何写?

iptables -A INPUT -p udp --dport 53 -j ACCEPT

TCP协议和UDP协议区别?

tcp是面向连接udp是无连接

Shell实现99乘法表

#!/bin/bash

for i in `seq 9`

do

        for j in `seq $i`

        do

                echo -n "$j*$i=$[$j*$i]  "

        done

        echo

done

磁盘空间满如何排查

df命令查看磁盘使用情况

du查看文件大小

日志分析你们关注哪些参数

客户端的ip地址

访问时间

HTTP协议

请求状态

ansible和saltstack的区别

SaltStack是C/S架构,易扩展

Ansible 依靠SSH传输,无客户端,不易扩展

MySQL innodb和myisam区别

1. InnoDB支持事务,MyISAM 不支持事务。

2. InnoDB支持外键,MyISAM 不支持外键。

3. InnoDB是聚集索引,MyISAM是非聚集索引。

4. InnoDB不保存表的具体行数,需要全表扫描。

MyISAM保存表的行数,执行语句速度很快;

5.InnoDB最小的锁粒度是行锁,MyISAM最小的锁粒度是表锁。

解释TPS、QPS、pv、uv , DAU, MAU ,  并发数

qps     每秒请求数

tps     每秒处理事务数

pv      页面浏览量

uv      用户访问数

DAU     日活跃用户数量

MAU     月活跃用户人数

并发数   同时访问服务器的连接数

linux最大文件数用ulimit 设置和修改配置文件配置

ulimit 限制 shell 启动进程所占用的资源

ulimit -f  数字  //设置文件的大小

默认是无限大【unlimited】

用ulimit -n命令,默认是1024 //最大文件数大小

vim /etc/security/limits.conf

末行追加

  soft nofile 65565

  hard nofile 65565

进程和线程的区别

进程是资源分配的最小单位

线程是程序执行的最小单位

啥是跨域?

解决浏览器的同源策略来实现跨域访问资源

介绍一下elk,由哪几部分组成?各部门都是干什么的?

Elasticsearch  存储和搜索日志

Logstash   收集、过滤日志

kibana  web界面展示

ansible的playbooke是干什么的

playbook是ansible用于配置,部署,和管理被控节点的剧本

ansible用过哪些插件

Connection通信插件

Lookup循环插件

Vars变量插件

Jenkins用过哪些插件 elk一般用来收集哪些日志 Git插件将gitlab仓库内容拉取到本地 GitLab配置Gitlab的相关认证实现触发 Ansible执行Ansible任务 Publish Over SSH负责传输

nginx  tomcat  mysql

zabbix主动模式和被动模式区别,如果让你zabbix服务器迁移,如何做?

Zabbix的主动模式和被动模式都是相对agent来说的

被动模式是 server主动去收集 agent上的数据,优点是模板多,更具灵活性,缺点server端压力大

主动模式就是agent将消息推送给server,优点是减轻了server的压力,缺点是所有的模板要修改为主动模式

 

1.部署新环境和代理

2.同步配置文件

3.关闭action,停掉旧节点

4.配置代理指向新节点

5.恢复action,配置web界面,重启即可

Redis持久化两种方式,有什么区别?

Rdb 体积小,恢复速度快,安全性低

Aof 体积大,恢复速度慢,安全性根据策略决定

你们公司用的redis是什么架构

主从复制

哨兵

proxy集群

列举你知道存储系统例如NFS MFS

TFS 淘宝

GFS 谷歌

KFS 两个印度人

FASTDFS 中国人

描述一线自动化上线流程

研发人员上线代码到gitlab项目仓库、jenkins通过git插件将代码拉取到本地,通过ssh传输到ansible批量管理服务器

阿里云用过哪些产品?下面百度一下

ECS 云服务器           RDS 关系型数据库              SLB 负载均衡

OSS 开放存储服务       ESS 自动伸缩

ECS 云服务器:以虚拟机的方式将一台物理机分成多台云服务器,提供可伸缩的计算服务。

SLB 负载均衡:基于LVS和Tengine实现的4层和7层负载均衡,有动态扩容,session保持等特点。

RDS 关系型数据库:通过云服务的方式让关系型数据库管理、操作和扩展变得更加简单。

OSS 开放存储服务:对任意大小数据对象提供高可用,高可靠的海量存储服务。ESS 自动伸缩:自动伸缩是一种根据业务需求和策略,自动调整其弹性计算资源的管理服务

你用docker做过什么

docekr部署   zabbix   mysql  lamp lnmp

docker持久化怎么做的?

volumes:存于主机文件系统中的某个区域,由Docker管理(具名挂载;匿名挂载)

bind mount:存于主机文件系统中的任意位置(指定挂载)

tmpfs mount(Linux中):存于内存中

docker  拉取,删除,启动镜像命令是什么,在写出其它你知道命令,至少6个

拉取镜像:docker pull 镜像名称

查看已经下载的镜像:docker images

删除镜像:docker rmi 镜像标识

运行容器:docker run 镜像名称

镜像导出:docker save -o 镜像id

镜像导入:docker load -i 镜像文件

71.Linux系统中病毒怎么解决

1)最简单有效的方法就是重装系统

2)要查的话就是找到病毒文件然后删除

top 命令找到cpu使用率最高的进程,rm -f  命令删除病毒文件,检查计划任务、开机启动项和病毒文件目录有无其他疑似文件等

3)删除病毒文件后不排除有潜伏病毒,所以最好是把备份重装一下

iftop,ps,netstat,chattr,lsof,pstree这些命令都是干啥的

Iftop:实时流量监控工具

ps:显示当前进程的状态

netstat:监控TCP/IP网络的工具

chattr:改变文件属性

lsof:列出被各种进程打开的文件信息

pstree:所有进程以树状图显示

说说TCP/IP的七层模型

应用层 :为用户提供服务

表示层:数据的表示、安全、压缩。

会话层:会话的建立、管理、终止 

传输层 :定义传输数据的协议端口号,以及流量控制和差错校验。 

网络层 :进行逻辑地址寻址,实现不同网络之间的路径选择。

数据链路层:控制网络层与物理层之间通信

物理层:为数据传输提供可靠的环境

vi和vim啥区别?说说在vim中删除  复制  粘贴 查找命令

Vi不支持正则表达式的搜索

Vim支持正则表达式的搜索

Vi没有自己的脚本语言

Vim有自己的脚本语言

删除:dd

复制:yy

粘贴:pp

查找:/

通过systemctl设置服务器的开机启动可以自动启动服务,除了这个还有没有其它的

写脚本        设置软链接

/etc/rc.local 永久修改

更改内核参数一般在哪个配置文件,如果直接配置会什么缺点。

/etc/sysctl.conf

当前有效,重启后无效

说说ftp主动模式和被动模式

参照物:ftp server端

主动模式:有利于ftp服务器的管理

ftp服务器的数据端口20主动连接客户端的数据端口,来建立数据连接,用来传输数据,这个数据连接的建立有可能被客户端防火墙拦截掉。

被动模式:有利于客户端服务器的管理

客户端的数据端口去连接ftp服务器的数据端口,建立数据连接。

nginx调优做过哪些?

最大打开文件数

连接超时时间

缓存

系统连接数

worker_processes工作进程个数

worker_connections最大连接数

你是怎么理解运维的?

以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

主从同步异常如何解决(不是重做主从)

1) 配置文件 添加slave-skip-errors = 错误代码 重启查看 

2) stop slave;      跳过slave上的1个错误mysql>set  global sql_slave_skip_counter=1;

      start slave;

代码上线时运维需要做的事情?

配合开发搭建测试环境

采购阿里云服务器,安装系统,配置服务提前确定好回滚机制

部署上线过程中出现bug,及时与开发沟通,解决bug后成功上线

82.文件已删除但空间不释放问题的分析与解决办法

du -sh /*//查看根目录文件大小,看有无大文件 df -h    //查看磁盘使用情况 推测可能为文件被进程锁定或者有进程在一直写文件中的数据 使用lsof | grep delete查看文件删除列表,查找哪个服务被锁定,执行 kill -9  删除进程 清空日志echo " " > xx.log,df -h再次查看磁盘空间

Tomcat 调优做过哪些 内存,并发,缓存,安全,网络,系统

并发:maxThreads 客户请求最大线程数

缓存:compression 打开压缩功能

MySQL有哪些日志,如何打开慢查询日志

错误日志   查询日志   慢日志  二进制日志  中继日志

配置文件添加  

slow_query_log = ON

slow_query_log_file = /var/lib/mysql/test-10-226-slow.log

long_query_time = 1

重启数据库

验证 show variables like '%slow_query%';

MySQL数据库中delete 和truncate的区别

delete可带where条件删除,truncate只能删除整个表的数据

delete支持事务回滚【rollback】,truncate不支持

如果清空整个表的话,truncate会重建表结构,效率高,delete效率低

redis持久化如何做?

RDB:会单独创建一个子进程【fork】来做持久化,先将数据写进一个临时文件,等持久化过程结束,用临时文件替换之前的持久化文件

AOF:将数据变更都写入指定目录下,保存数据完整性,持久化效果好

zabbix监控nginx的哪些指标

Active connections: 活跃连接数

 accepts:已接收的客户端请求数量

 handled:已处理的客户端请求数量 requests:客户端发送的总请求数 Reading:正在读取客户端请求报文首部的连接数 Writing:正在向客户端发送响应报文的连接数Waiting:正在等待客户端发送请求报文的空闲连接数

你们的微信报警怎么做的?

微信申请一个企业公众号

在企业号上新建应用

接口调用测试

配置脚本

Web界面新增报警媒介信息

测试是否成功

报警风暴如何避免

智能告警平台(Cloud Alert) CA,能快速接入各类告警信息,通过自动去重、规则压缩、算法降噪;同时通过分派、排班、通知等 功能,快速实现告警流程化管理,帮助运维团队更快响应告警,有序处理问题。

zabbix有哪些监控方式,主动还是被动

主动是agent请求server获取主机的监控项列表,并主动将监控项内需要检测的数据提交给server

被动是server想agent请求获取监控项的数据,agent返回数据

除了zabbix你还了解过哪些监控

Nagios简单直观而且被监控端不要做任何配置

mrtg配置简单、源码开发、可定制

用过哪些zabbix的模板

Template App Zabbix Server

Template OS Linux

mysql监控报警

nginx连接监控报警

访问网站的流程

首先访问本地缓存,缓存里有就直接返回,没有的话就直接访问DNS服务器找相应的IP地址,找到后进入服务器主机里面找配置文件,在配置文件里面有相关的目录之类的,找到相关的目录后直接返还给客户

登录docker容器的方式有哪些

使用docker attach 【exit停止容器】

使用exec 【exit退出容器】

mysql和nosql的区别

mysql关系型数据库,数据能持久化,存储在硬盘中,读取慢

nosql非关系型数据库,不能持久化,速度快效率高

iptables是什么?在centos6和centos7中防火墙有啥区别?

防火墙

Centos6是iptables ,Centos7是firewall

iptables 用于过滤数据包,属于网络层防火墙

firewall 能够允许哪些服务可用,哪些端口可用,属于更高一层的防火墙

云服务 laas、paas、saas的区别

IaaS:基础设施服务:IaaS 是云服务的最底层,主要提供一些基础资源。用户需要自己控制底层,实现基础设施的使用逻辑。

PaaS:平台服务:PaaS 提供软件部署平台,抽象掉了硬件和操作系统细节,可以无缝地扩展。开发者只需要关注自己的业务逻辑,不需要关注底层

SaaS:软件服务SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用

mysql数据库优化

系统内核优化

数据库性能优化

数据库配置优化

net.ipv4.tcp_fin_timeout = 30

#TIME_WAIT超时时间,默认是60s

net.ipv4.tcp_max_syn_backlog = 4096

#进入SYN队列最大长度,加大队列长度可容纳更多的等待连接

max_connections = 151

#同时处理最大连接数

open_files_limit = 1024 

#打开文件数限制

主机名配置文件是什么

/etc/hostname

dns服务器配置文件

/etc/resolv.conf

系统用户配置文件

/etc/passwd

yum仓库配置文件

/etc/yum.repos.d/

文件系统挂在配置文件

/etc/fstab

selinux配置文件

/etc/selinux/config

centos6以前的系统服务配置文件

/etc/init.d/

centos7以后的系统服务配置文件

/usr/lib/systemd/system/

ssh服务器配置文件

/etc/ssh/sshd_config

Redis数据库配置文件

redis.conf

网卡配置文件

/etc/sysconfig/network-scripts/

系统openfile配置文件

/etc/security/limits.conf

系统启动级别配置文件

/etc/inittab

Apache的配置文件

/etc/httpd/conf/httpd.conf

nginx配置文件

/etc/nginx/nginx.conf

系统内核参数配置文件

/etc/sysctl.conf

nginx配置文件详解?

优化

worker_processes 1; --指定nginx要开启的进程数。最好与CPU个数相同。

worker_connections 1024; --每个进程的最大连接数

sendfile on; --高效文件传输模式。

gzip on; --支持压缩传输,提高传输速度

tcp_nopush on;优化网络传输

安全

location /admin {

   allow 192.168.1.10;

   deny all;

}

NGINX配置文件分为那几部分?

nginx配置文件分为5个区块:

Main事件区块:影响全局的配置。

Events模块:影响服务器与用户网络连接的配置

HTTP模块:http的全局设置。

server模块:指定虚拟主机域名、IP和端口

location模块:location部分用于匹配网页位置

upstream模块:后端服务器的负载均衡

nginx配置日志文件记录远程ip,时间,状态码,发送数据大小,从哪个页面访问的,客户端浏览器相关信息

/var/log/nginx/access.log

解释惊群现象

多个进程和线程同时阻塞等待一个事件,事件发生唤醒所有线程,但最终只能有一个线程对该事件进行处理,其他线程在失败后重新休眠,这种性能浪费就是惊群

Linux2.6版本以后,内核已经解决了accept()函数的“惊群”问题

处理方式就是,当内核接收到一个客户连接后,只会唤醒等待队列上的第一个进程或线程

fastcgi是什么

FastCGI:Nginx本身不支持PHP等语言,但是它可以通过FastCGI来将请求扔给某些语言或框架进行处理

为什么nginx性能这么高

得益于它的事件处理机制:

异步非阻塞事件处理机制:运用了epoll模型,提供了一个队列,排队解决

事件收集器,事件发送器,事件处理器

在Nginx中,解释如何在URL中保留双斜线?

syntax: merge_slashes off

default: merge_slashes on

context: http,server

fastcgi 与 cgi 的区别?

fastcgi 新增功能     分布式计算   【充分利用系统性能,提升系统安全性】

   多角色与可扩展角色【认证和身份检查、转换数据格式】

写出下列参数

nginx工作进程数      worker_processes

nginx每个进程最大连接数   worker_connections

错误日志定义并指定级别    error_log  /var/log/nginx/nginx_error.log  crit;   crit 记录最少,degug记录最多

访问日志定义   access_log path

日志格式定义   log_format name string

虚机域名配置  server_name name

根目录配置   root path;

首页配置  

连接超时时间   keepalived_timeout timeout   默认75s

PID路径定义   pid logs/nginx.pid;

autoindex是干什么的

自动变址, 自动索引

用@me来表示计数开始,而类似@me+1则可以指定数字开始

nginx图片缓存30天如何写

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

                    {expires 30d;}

location ~ .*\.(js|css)?$

                    {expires 12h; }

nginx  gzip模块如如何使用?

http{

gzip on;   //开启压缩

gzip_min_length 1k;   //设置阀值

gzip_buffers 4 32k;    //设置压缩缓冲区数量和大小

gzip_http_version 1.1;  //版本

gzip_comp_level 6;      //压缩 比例

gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml; //规定文件压缩类型

gzip_vary on;  //启用

}

NGINX如何将worker 进程绑定特定内核

worker_cpu_affinity

NGINX常用命令

yum安装   启停 nginx

源码安装   启停  /usr/local/nginx/sbin/nginx   // -s stop

不停机启动     nginx    -s reload

指定配置文件启动     /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

检查配置文件    nginx -t

查看版本   nginx -v

用sed修改1.txt的23行study为xxx;

sed '23s/study/xxx/' 1.txt > 2.txt

sed -i '23s/study/xxx/' 2.txt

查看nginx日志50行第三列的内容

awk 'NR==50 {print $3}' access.log

删除日志文件里的空行

sed ‘/^$/d’ kong.txt > kong2.txt

sed -i '/^$/d' kong2.txt

删除日志文件里以#号开头的行

sed -i '1d' kong.txt

写一个每天0点执行的删除nginx日志的脚本,保留最近七天的日志

00 00 * * * find /var/log/nginx/ -type f -name '*.log' -mtime +7 -exec rm -f {} \;

查找名字为error.log的日志文件

find / -type f -name "error.log"

有一个文件,文件第二列为数字,查找第二列大于100的行?

awk ' $2>100' a.txt

假如系统有100个系统账号,名字一次为name1-name100,编写脚本删除这些用户

#!/bin/bash

for i in `seq 100`

do

        userdel name$i

done

用iptable限制只有ip为192.168.0.55的IP访问本机22端口

iptables -I INPUT -p tcp --dport 22 -j DROP

iptables -I INPUT -s 192.168.0.55 -p tcp --dport 22 -j ACCEPT

查询文件里包含hhh的行并所在行的行号

grep -n 'hhh' h.txt

计算1到100相加

方法一:

seq 100|awk '{i=i+$1}END {print i}'

方法二:

#!/bin/bash

sum=0

for i in `seq 100`

do

        sum=$[$sum+$i]

done

        echo $sum

查找系统内文件大于60K小于100K的文件,并删除他们

find / -type f -size +50k -size -100k -exec rm -f {} \;

统计nginx日志每个iP出现的次数

cat /var/log/nginx/access.log |awk '{print $1}'|sort -r|uniq -c

统计log目录下以test开头的100个文件,然后把这100个文件的第一行保存到aaa这个文件中

find log -type f -name "test*" |head -100|xargs head -1 -q > aaa

文件如下

111

aaa

111

222

333

111

打印数量超过三次的行

cat three |sort|uniq -c|awk '{if($1>3){print $2}}'

系统里如何查看某个包是否安装

rpm -q nginx

shell获取内存 CPU 硬盘

剩余内存:free |awk '/M/{print $4}'

cpu使用率:echo $(top -n1 |awk '/Cpu/{print $4}')%

磁盘总量:lsblk | awk '/disk/{print $4}'

grep获取不包含an的行

grep -v an /etc/passwd

vim打开一个文件,替换文中所有的user为users

//进入末行模式

:%s /user/users/g  

删除文件中最后一行

sed -i '$d' user

Linux启动流程

bios自检加载主程序 【MBR】加载次程序【GRUB】内核映射init进程

什么是微服务?

微服务架构就是将一个庞大的业务系统按照业务模块拆分成若干个独立的子系统,每个子系统都是一个独立的应用

Spring cloud是什么?

Spring cloud 是对于微服务架构的实现,底层基于http协议

Nginx工作模式

单进程:只有一个进程,所有工作都由它负责,一般在开发阶段和调试使用master-worker:一个master管理至少一个worker,master管理worker有信号处理,加载配置等,worker挂掉master会再启一个,稳定和性能高

153. Cookie和session的区别 数据存放位置不同:cookie数据存放在客户的浏览器上,即网页缓存session数据放在服务器上,即key-value形式,如redis 和mongoDB 安全程度不同:cookie不安全,session安全 数据存储大小不同:单个cookie保存的数据不能超过4K,一个站点普遍上限保存20个cookie

session存储于服务端,浏览器对其没有限制

154. Tomcat session共享

Tomcat内置的session复制方案Spring Session也就是基于redis实现session共享

docker容器有几种状态?

四种:运行、已暂停、重启、已退出

dockerfile中最常见的指令是什么?

FROM:指定基础镜像

LABLE:为镜像指定标签

RUN:运行指定的命令

CMD:容器启动时要运行的命令

docker三剑客 Compose 简化容器的生成和运行

 Machine 负责在多种平台上快速安装 Docker 环境

Swarm 将多个 Docker 主机封装为单个大型的虚拟 Docker 主机

 

mysql主从复制的过程简述

1、主库接受到更新命令,执行更新操作,生成binlog

2、从库开启一个I/O线程与主库dump_thread建立连接

3、主库dump_thread从本地读取binlog传送给从库

4、从库从主库获取到binlog后存储到本地,成为relay log,并将读取到的binlog文件名和位置保存到master-info文件

5、sql_thread线程读取relay log解析、执行命令更新数据

MySQL主从故障切换后,如何恢复主从复制?

记录master位置,切换架构为BA,保证业务,恢复前记录position结束位置,最后通过二进制日志文件进行恢复

引起主从延迟的常见原因

常见原因:Master、Slave负载过高、网络延迟、机器性能低、MySQL配置不合理。

lvs和nginx的区别

Lvs是位于4层,抗负载能力强,应用广泛

Nginx4、7层都可以做,对网络依赖性小,稳定,支持正则、目录等。还是一个web服务器,缓存服务器

nginx正向代理和反向代理区别以及列举 nginx作为反向代理的负载均衡算法和常用模块

正向代理即是客户端代理, 服务端不知道实际发起请求的客户端反向代理即是服务端代理, 客户端不知道实际提供服务的服务端

算法:轮询;权重;ip_hash;fair;url_hash

常用模块:rewrite重写模块

access来源控制模块

ssl安全模块

status监控模块

proxy前端代理模块

upstream后端代理模块

说出下面HTTP返回码的意义

200:请求成功    301:被请求资源永久重定向    302:请求资源临时重定向

404:页面找不到    500:内部服务器错误    502:网关无效

503:服务器不可用    504:网关超时

Rsync+inotify和Rsync+crontab区别

Rsync+inotify是实时备份    

Rsync+crontab是定时备份

svn和Git区别

svn是集中式版本控制系统,git是分布式版本控制系统。

svn主要是项目管理,git主要是代码管理。

svn由项目经理协调多个项目统筹开发,git通过网络多人开发同一项目。

分别简述harbor和ansible工具是用来做啥的

harbor是私有镜像仓库    

ansible是批量管理工具

假如让你负责监控工具建设,例如zabbix,说说你的思路

系统级——内存,cpu,硬盘,进程数,tcp状态应用级——监控服务,端口,status模块网络级——监控url

zabbix监控分几种模式,分那几个组成部分?

两种:主动模式和被动模式

主动是agent向server发送请求

被动是server向agent发送请求

 

五部分

zabbix web GUI  web界面zabbix database  数据存储zabbix server   服务端zabbix agent   客服端zabbix  proxy   代理

解释 ip地址,子网掩码,网关的意义

Ip地址:身份明确(通信时使用)

子网掩码:组织明确(通信时所属网段的明确)

网关:边塞明确(不同网段之间通信进出口)

讲解一下raid0 raid1 raid5 raid1 0的区别

Raid 0 最少需要两块磁盘

性能极佳,无冗余

适用于个人及日志存储

RAID 1的特点:

最少需要2块磁盘,偶数盘

100%冗余

读写一般

适用于重要数据存放,如数据库服务器

 

Raid 5

3块盘起步

兼顾冗余,损失1块盘,读还行,写一般

适用于金融、数据库存储

 

Raid 1 0

最少4块盘

性能特佳,100%冗余

适用于对性能和冗余高要求的业务实现

假设目前的服务器规模是200台,说说你的管理思路,例如存储,监控,日志收集等。

跳板机统一登录审计

Ansible批量部署统一调度

cmdb信息管理界面,便于查阅

存储日志方面:

Es 4台

Logstash 小200台

Kibana 2 台

nginx除了可以作为代理以外还可以作为什么服务器

缓存和web

解释CDN意义

CDN是将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。适用于站点加速、点播、直播等场景

列举常用的关系型数据库和非关系型数据库,每类至少两个

关系型数据库:mysql,oracle,sql server非关系型数据库:redis,memcache,mongoDB

何为脑裂?介绍一下负载中脑裂发生的原因

高可用HA中,心跳线断裂、一分为二、两master抢资源、致系统崩溃、数据丢失

 

心跳线断裂

网卡配置有问题

防火墙阻挡心跳消息

其他服务配置不当

交换机故障所致

 

解决方案:

用以太网电缆串行连接两根心跳线

预防:做好监控报警,第一时间挽救,降低损失

新安装的Linux系统在安全和性能方面做哪些配置

国内yum

时间同步

内核优化(最大打开文件数修改 修改系统默认的TIMEOUT时间)

精简开机自启

防火墙配置

拒绝ping

ssh加速

画出大做维有限公司的网站架构图

 

dns原理,以访问百度为例

访问www.baidu.com,先访问本地缓存,有则返回,无则继续 向根域名解析服务器,接下来依次向一级/二级/三级域名解析服务器 找到资源存储到本地缓存并返回给客户

keepalvied的工作原理

Keepalived高可用是通过 VRRP进行通信, VRRP是通过竞选机制来确定主备,主优先级高于备,因此,工作时主会优先获得所有资源,备节点处于等待状态,当主宕机时,备节点接替主节点资源对外提供服务

memcache 和redis有什么区别

Redis支持数据持久化、丰富的 key/value

Memcache不支持数据持久化 较为简单的 key/value

redis支持的数据类型有哪些

字符串 哈希 列表 集合 有序集合

tomcat内存调优,XMX ,xms分别表示什么

Xmx:可用堆最大内存

Xms:初始化时堆的最小内存

tomcat的目录结构有哪些 nginx服务器上master和worker的区别 bin:命令目录 conf:配置文件目录 logs:日志目录 webapps:应用程序目录

master进程管理worker进程

负责判断配置文件的语法

worker进程处理事务请求

mysql安全方面你都做过哪些措施

删除数据库无用用户限权远程用户不在命令行界面输入数据库密码定期修改密码与加强密码的复杂度

mysql_secure_installation

--为root用户设置密码--删除匿名账号--取消root用户远程登录--删除test库和对test库的访问权限--刷新授权表使修改生效

mysql数据库你们是使用什么工具完成读写分离的

amoeba支持读写分离  

mycat支持读写分离

全备,增备,热备,温备、冷备分别阐述下你的理解

全备:备份数据库所有数据。 增备:在上次备份的基础上备份新增数据。 冷备:停机备份。

温备:服务在线,但仅支持读请求,不允许写请求。 热备:不停机备份

网站打开慢,请给出排查方法,如果是数据库导致的慢,如何排查。

首先检查dns域名解析、之后使用top来查看我们的网卡占用、如果有大的进程占用我们的网卡、kill -9 将其杀死、没有的话查看我们的日志文件,看是否有异常。

写过哪些shell脚本(列举5个)

防误删文件    巡检系统  防ddos攻击 status监控  系统优化    mysql备份

解释蓝绿部署、滚动部署、灰度发布

蓝绿部署: 旧版本不停,新版本进行测试,新版ok,将用户切换到新版本,同时更新旧版本滚动发布: 取出部分服务器更新,更新完后继续使用,循环往复,直至全部更新完灰度发布:

ABtest为例,一部分A继续用,一部分测试B,B无问题,A的迁移至B上

Squid、Varinsh和Nginx 做缓存有什么区别

SQUID 是功能最全面的,但是架构古老,性能普通

Varnish 是速度一流的内存缓存,适合缓存页面和图片

Nginx 用了插件可以做缓存,只能缓存静态页面

什么是中间件,什么是JDK。

将具体业务和底层逻辑解耦的组件

jdk是Java的开发工具包

MySQL 主从延时很大怎么办?

修改配置减少延迟(设置sync_binlog=0|关闭binlog,提高sql执行效率)

使用更好的硬件设备作为slave

加入缓存,降低mysql压力

DDOS应该怎么防?

  在短时间内发起大量请求,耗尽服务器的资源,无法响应正常的访问,造成网站实质下线

流量清洗(针对DDoS攻击的监控、告警和防护的一种网络安全服务)备份网站HTTP 请求的拦截带宽扩容CDN加速

啥是僵尸进程?如何查看?

defunct进程的出现时间是在子进程终止后,但是父进程尚未读取

我们用top命令查看zombie或者ps aux | grep Z会列出进程表中所有僵尸进程的详细内容

ICMP是几层协议?

3层网络层协议

啥是静态网页,啥是动态网页。

静态网页是一经制成,内容不再变化, 如html

动态网页是内容可以变化,如 jsp php

Linux中文件 inode?   linux inode满了怎么办?

Inode就是索引节点,是储存文件元信息的区域

删除无用的临时文件

Linux 里软连接和硬链接区别。

硬链接是复制原文件且互通

软链接相当于快捷方式

Linux交换分区swap和物理内存的区别。

物理内存,从物理内存条获取的内存空间

交换分区:内存不足时将磁盘中的一部分空间释放出来,供当前运行的程序使用。

列出 LINUX 常见打包工具并写相应解压缩参数(至少三种) tar  gzip2 bzip xz gzip -c FILE > FILE.gz保留源文件压缩 tar xf FILE

bzip2 -c FILE > FILE.bz2

xz -c FILE > FILE.xz

计划任务,每周六,14 ,16 ,18 执行备份脚本定时任务如何写

crontab -e

* 14,16,18 * * 6 sh /root/a.sh

iptables开放DNS服务,命令如何写?

iptables -A INPUT -p udp --dport 53 -j ACCEPT

TCP协议和UDP协议区别?

tcp是面向连接udp是无连接

Shell实现99乘法表

#!/bin/bash

for i in `seq 9`

do

        for j in `seq $i`

        do

                echo -n "$j*$i=$[$j*$i]  "

        done

        echo

done

磁盘空间满如何排查

df命令查看磁盘使用情况

du查看文件大小

日志分析你们关注哪些参数

客户端的ip地址

访问时间

HTTP协议

请求状态

ansible和saltstack的区别

SaltStack是C/S架构,易扩展

Ansible 依靠SSH传输,无客户端,不易扩展

MySQL innodb和myisam区别

1. InnoDB支持事务,MyISAM 不支持事务。

2. InnoDB支持外键,MyISAM 不支持外键。

3. InnoDB是聚集索引,MyISAM是非聚集索引。

4. InnoDB不保存表的具体行数,需要全表扫描。

MyISAM保存表的行数,执行语句速度很快;

5.InnoDB最小的锁粒度是行锁,MyISAM最小的锁粒度是表锁。

解释TPS、QPS、pv、uv , DAU, MAU ,  并发数

qps     每秒请求数

tps     每秒处理事务数

pv      页面浏览量

uv      用户访问数

DAU     日活跃用户数量

MAU     月活跃用户人数

并发数   同时访问服务器的连接数

linux最大文件数用ulimit 设置和修改配置文件配置

ulimit 限制 shell 启动进程所占用的资源

ulimit -f  数字  //设置文件的大小

默认是无限大【unlimited】

用ulimit -n命令,默认是1024 //最大文件数大小

vim /etc/security/limits.conf

末行追加

  soft nofile 65565

  hard nofile 65565

进程和线程的区别

进程是资源分配的最小单位

线程是程序执行的最小单位

啥是跨域?

解决浏览器的同源策略来实现跨域访问资源

介绍一下elk,由哪几部分组成?各部门都是干什么的?

Elasticsearch  存储和搜索日志

Logstash   收集、过滤日志

kibana  web界面展示

ansible的playbooke是干什么的

playbook是ansible用于配置,部署,和管理被控节点的剧本

ansible用过哪些插件

Connection通信插件

Lookup循环插件

Vars变量插件

Jenkins用过哪些插件 elk一般用来收集哪些日志 Git插件将gitlab仓库内容拉取到本地 GitLab配置Gitlab的相关认证实现触发 Ansible执行Ansible任务 Publish Over SSH负责传输

nginx  tomcat  mysql

zabbix主动模式和被动模式区别,如果让你zabbix服务器迁移,如何做?

Zabbix的主动模式和被动模式都是相对agent来说的

被动模式是 server主动去收集 agent上的数据,优点是模板多,更具灵活性,缺点server端压力大

主动模式就是agent将消息推送给server,优点是减轻了server的压力,缺点是所有的模板要修改为主动模式

 

1.部署新环境和代理

2.同步配置文件

3.关闭action,停掉旧节点

4.配置代理指向新节点

5.恢复action,配置web界面,重启即可

Redis持久化两种方式,有什么区别?

Rdb 体积小,恢复速度快,安全性低

Aof 体积大,恢复速度慢,安全性根据策略决定

你们公司用的redis是什么架构

主从复制

哨兵

proxy集群

列举你知道存储系统例如NFS MFS

TFS 淘宝

GFS 谷歌

KFS 两个印度人

FASTDFS 中国人

描述一线自动化上线流程

研发人员上线代码到gitlab项目仓库、jenkins通过git插件将代码拉取到本地,通过ssh传输到ansible批量管理服务器

阿里云用过哪些产品?下面百度一下

ECS 云服务器           RDS 关系型数据库              SLB 负载均衡

OSS 开放存储服务       ESS 自动伸缩

ECS 云服务器:以虚拟机的方式将一台物理机分成多台云服务器,提供可伸缩的计算服务。

SLB 负载均衡:基于LVS和Tengine实现的4层和7层负载均衡,有动态扩容,session保持等特点。

RDS 关系型数据库:通过云服务的方式让关系型数据库管理、操作和扩展变得更加简单。

OSS 开放存储服务:对任意大小数据对象提供高可用,高可靠的海量存储服务。ESS 自动伸缩:自动伸缩是一种根据业务需求和策略,自动调整其弹性计算资源的管理服务

你用docker做过什么

docekr部署   zabbix   mysql  lamp lnmp

docker持久化怎么做的?

volumes:存于主机文件系统中的某个区域,由Docker管理(具名挂载;匿名挂载)

bind mount:存于主机文件系统中的任意位置(指定挂载)

tmpfs mount(Linux中):存于内存中

docker  拉取,删除,启动镜像命令是什么,在写出其它你知道命令,至少6个

拉取镜像:docker pull 镜像名称

查看已经下载的镜像:docker images

删除镜像:docker rmi 镜像标识

运行容器:docker run 镜像名称

镜像导出:docker save -o 镜像id

镜像导入:docker load -i 镜像文件

71.Linux系统中病毒怎么解决

1)最简单有效的方法就是重装系统

2)要查的话就是找到病毒文件然后删除

top 命令找到cpu使用率最高的进程,rm -f  命令删除病毒文件,检查计划任务、开机启动项和病毒文件目录有无其他疑似文件等

3)删除病毒文件后不排除有潜伏病毒,所以最好是把备份重装一下

iftop,ps,netstat,chattr,lsof,pstree这些命令都是干啥的

Iftop:实时流量监控工具

ps:显示当前进程的状态

netstat:监控TCP/IP网络的工具

chattr:改变文件属性

lsof:列出被各种进程打开的文件信息

pstree:所有进程以树状图显示

说说TCP/IP的七层模型

应用层 :为用户提供服务

表示层:数据的表示、安全、压缩。

会话层:会话的建立、管理、终止 

传输层 :定义传输数据的协议端口号,以及流量控制和差错校验。 

网络层 :进行逻辑地址寻址,实现不同网络之间的路径选择。

数据链路层:控制网络层与物理层之间通信

物理层:为数据传输提供可靠的环境

vi和vim啥区别?说说在vim中删除  复制  粘贴 查找命令

Vi不支持正则表达式的搜索

Vim支持正则表达式的搜索

Vi没有自己的脚本语言

Vim有自己的脚本语言

删除:dd

复制:yy

粘贴:pp

查找:/

通过systemctl设置服务器的开机启动可以自动启动服务,除了这个还有没有其它的

写脚本        设置软链接

/etc/rc.local 永久修改

更改内核参数一般在哪个配置文件,如果直接配置会什么缺点。

/etc/sysctl.conf

当前有效,重启后无效

说说ftp主动模式和被动模式

参照物:ftp server端

主动模式:有利于ftp服务器的管理

ftp服务器的数据端口20主动连接客户端的数据端口,来建立数据连接,用来传输数据,这个数据连接的建立有可能被客户端防火墙拦截掉。

被动模式:有利于客户端服务器的管理

客户端的数据端口去连接ftp服务器的数据端口,建立数据连接。

nginx调优做过哪些?

最大打开文件数

连接超时时间

缓存

系统连接数

worker_processes工作进程个数

worker_connections最大连接数

你是怎么理解运维的?

以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

主从同步异常如何解决(不是重做主从)

1) 配置文件 添加slave-skip-errors = 错误代码 重启查看 

2) stop slave;      跳过slave上的1个错误mysql>set  global sql_slave_skip_counter=1;

      start slave;

代码上线时运维需要做的事情?

配合开发搭建测试环境

采购阿里云服务器,安装系统,配置服务提前确定好回滚机制

部署上线过程中出现bug,及时与开发沟通,解决bug后成功上线

82.文件已删除但空间不释放问题的分析与解决办法

du -sh /*//查看根目录文件大小,看有无大文件 df -h    //查看磁盘使用情况 推测可能为文件被进程锁定或者有进程在一直写文件中的数据 使用lsof | grep delete查看文件删除列表,查找哪个服务被锁定,执行 kill -9  删除进程 清空日志echo " " > xx.log,df -h再次查看磁盘空间

Tomcat 调优做过哪些 内存,并发,缓存,安全,网络,系统

并发:maxThreads 客户请求最大线程数

缓存:compression 打开压缩功能

MySQL有哪些日志,如何打开慢查询日志

错误日志   查询日志   慢日志  二进制日志  中继日志

配置文件添加  

slow_query_log = ON

slow_query_log_file = /var/lib/mysql/test-10-226-slow.log

long_query_time = 1

重启数据库

验证 show variables like '%slow_query%';

MySQL数据库中delete 和truncate的区别

delete可带where条件删除,truncate只能删除整个表的数据

delete支持事务回滚【rollback】,truncate不支持

如果清空整个表的话,truncate会重建表结构,效率高,delete效率低

redis持久化如何做?

RDB:会单独创建一个子进程【fork】来做持久化,先将数据写进一个临时文件,等持久化过程结束,用临时文件替换之前的持久化文件

AOF:将数据变更都写入指定目录下,保存数据完整性,持久化效果好

zabbix监控nginx的哪些指标

Active connections: 活跃连接数

 accepts:已接收的客户端请求数量

 handled:已处理的客户端请求数量 requests:客户端发送的总请求数 Reading:正在读取客户端请求报文首部的连接数 Writing:正在向客户端发送响应报文的连接数Waiting:正在等待客户端发送请求报文的空闲连接数

你们的微信报警怎么做的?

微信申请一个企业公众号

在企业号上新建应用

接口调用测试

配置脚本

Web界面新增报警媒介信息

测试是否成功

报警风暴如何避免

智能告警平台(Cloud Alert) CA,能快速接入各类告警信息,通过自动去重、规则压缩、算法降噪;同时通过分派、排班、通知等 功能,快速实现告警流程化管理,帮助运维团队更快响应告警,有序处理问题。

zabbix有哪些监控方式,主动还是被动

主动是agent请求server获取主机的监控项列表,并主动将监控项内需要检测的数据提交给server

被动是server想agent请求获取监控项的数据,agent返回数据

除了zabbix你还了解过哪些监控

Nagios简单直观而且被监控端不要做任何配置

mrtg配置简单、源码开发、可定制

用过哪些zabbix的模板

Template App Zabbix Server

Template OS Linux

mysql监控报警

nginx连接监控报警

访问网站的流程

首先访问本地缓存,缓存里有就直接返回,没有的话就直接访问DNS服务器找相应的IP地址,找到后进入服务器主机里面找配置文件,在配置文件里面有相关的目录之类的,找到相关的目录后直接返还给客户

登录docker容器的方式有哪些

使用docker attach 【exit停止容器】

使用exec 【exit退出容器】

mysql和nosql的区别

mysql关系型数据库,数据能持久化,存储在硬盘中,读取慢

nosql非关系型数据库,不能持久化,速度快效率高

iptables是什么?在centos6和centos7中防火墙有啥区别?

防火墙

Centos6是iptables ,Centos7是firewall

iptables 用于过滤数据包,属于网络层防火墙

firewall 能够允许哪些服务可用,哪些端口可用,属于更高一层的防火墙

云服务 laas、paas、saas的区别

IaaS:基础设施服务:IaaS 是云服务的最底层,主要提供一些基础资源。用户需要自己控制底层,实现基础设施的使用逻辑。

PaaS:平台服务:PaaS 提供软件部署平台,抽象掉了硬件和操作系统细节,可以无缝地扩展。开发者只需要关注自己的业务逻辑,不需要关注底层

SaaS:软件服务SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用

mysql数据库优化

系统内核优化

数据库性能优化

数据库配置优化

net.ipv4.tcp_fin_timeout = 30

#TIME_WAIT超时时间,默认是60s

net.ipv4.tcp_max_syn_backlog = 4096

#进入SYN队列最大长度,加大队列长度可容纳更多的等待连接

max_connections = 151

#同时处理最大连接数

open_files_limit = 1024 

#打开文件数限制

主机名配置文件是什么

/etc/hostname

dns服务器配置文件

/etc/resolv.conf

系统用户配置文件

/etc/passwd

yum仓库配置文件

/etc/yum.repos.d/

文件系统挂在配置文件

/etc/fstab

selinux配置文件

/etc/selinux/config

centos6以前的系统服务配置文件

/etc/init.d/

centos7以后的系统服务配置文件

/usr/lib/systemd/system/

ssh服务器配置文件

/etc/ssh/sshd_config

Redis数据库配置文件

redis.conf

网卡配置文件

/etc/sysconfig/network-scripts/

系统openfile配置文件

/etc/security/limits.conf

系统启动级别配置文件

/etc/inittab

Apache的配置文件

/etc/httpd/conf/httpd.conf

nginx配置文件

/etc/nginx/nginx.conf

系统内核参数配置文件

/etc/sysctl.conf

nginx配置文件详解?

优化

worker_processes 1; --指定nginx要开启的进程数。最好与CPU个数相同。

worker_connections 1024; --每个进程的最大连接数

sendfile on; --高效文件传输模式。

gzip on; --支持压缩传输,提高传输速度

tcp_nopush on;优化网络传输

安全

location /admin {

   allow 192.168.1.10;

   deny all;

}

NGINX配置文件分为那几部分?

nginx配置文件分为5个区块:

Main事件区块:影响全局的配置。

Events模块:影响服务器与用户网络连接的配置

HTTP模块:http的全局设置。

server模块:指定虚拟主机域名、IP和端口

location模块:location部分用于匹配网页位置

upstream模块:后端服务器的负载均衡

nginx配置日志文件记录远程ip,时间,状态码,发送数据大小,从哪个页面访问的,客户端浏览器相关信息

/var/log/nginx/access.log

解释惊群现象

多个进程和线程同时阻塞等待一个事件,事件发生唤醒所有线程,但最终只能有一个线程对该事件进行处理,其他线程在失败后重新休眠,这种性能浪费就是惊群

Linux2.6版本以后,内核已经解决了accept()函数的“惊群”问题

处理方式就是,当内核接收到一个客户连接后,只会唤醒等待队列上的第一个进程或线程

fastcgi是什么

FastCGI:Nginx本身不支持PHP等语言,但是它可以通过FastCGI来将请求扔给某些语言或框架进行处理

为什么nginx性能这么高

得益于它的事件处理机制:

异步非阻塞事件处理机制:运用了epoll模型,提供了一个队列,排队解决

事件收集器,事件发送器,事件处理器

在Nginx中,解释如何在URL中保留双斜线?

syntax: merge_slashes off

default: merge_slashes on

context: http,server

fastcgi 与 cgi 的区别?

fastcgi 新增功能     分布式计算   【充分利用系统性能,提升系统安全性】

   多角色与可扩展角色【认证和身份检查、转换数据格式】

写出下列参数

nginx工作进程数      worker_processes

nginx每个进程最大连接数   worker_connections

错误日志定义并指定级别    error_log  /var/log/nginx/nginx_error.log  crit;   crit 记录最少,degug记录最多

访问日志定义   access_log path

日志格式定义   log_format name string

虚机域名配置  server_name name

根目录配置   root path;

首页配置  

连接超时时间   keepalived_timeout timeout   默认75s

PID路径定义   pid logs/nginx.pid;

autoindex是干什么的

自动变址, 自动索引

用@me来表示计数开始,而类似@me+1则可以指定数字开始

nginx图片缓存30天如何写

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

                    {expires 30d;}

location ~ .*\.(js|css)?$

                    {expires 12h; }

nginx  gzip模块如如何使用?

http{

gzip on;   //开启压缩

gzip_min_length 1k;   //设置阀值

gzip_buffers 4 32k;    //设置压缩缓冲区数量和大小

gzip_http_version 1.1;  //版本

gzip_comp_level 6;      //压缩 比例

gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml; //规定文件压缩类型

gzip_vary on;  //启用

}

NGINX如何将worker 进程绑定特定内核

worker_cpu_affinity

NGINX常用命令

yum安装   启停 nginx

源码安装   启停  /usr/local/nginx/sbin/nginx   // -s stop

不停机启动     nginx    -s reload

指定配置文件启动     /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

检查配置文件    nginx -t

查看版本   nginx -v

用sed修改1.txt的23行study为xxx;

sed '23s/study/xxx/' 1.txt > 2.txt

sed -i '23s/study/xxx/' 2.txt

查看nginx日志50行第三列的内容

awk 'NR==50 {print $3}' access.log

删除日志文件里的空行

sed ‘/^$/d’ kong.txt > kong2.txt

sed -i '/^$/d' kong2.txt

删除日志文件里以#号开头的行

sed -i '1d' kong.txt

写一个每天0点执行的删除nginx日志的脚本,保留最近七天的日志

00 00 * * * find /var/log/nginx/ -type f -name '*.log' -mtime +7 -exec rm -f {} \;

查找名字为error.log的日志文件

find / -type f -name "error.log"

有一个文件,文件第二列为数字,查找第二列大于100的行?

awk ' $2>100' a.txt

假如系统有100个系统账号,名字一次为name1-name100,编写脚本删除这些用户

#!/bin/bash

for i in `seq 100`

do

        userdel name$i

done

用iptable限制只有ip为192.168.0.55的IP访问本机22端口

iptables -I INPUT -p tcp --dport 22 -j DROP

iptables -I INPUT -s 192.168.0.55 -p tcp --dport 22 -j ACCEPT

查询文件里包含hhh的行并所在行的行号

grep -n 'hhh' h.txt

计算1到100相加

方法一:

seq 100|awk '{i=i+$1}END {print i}'

方法二:

#!/bin/bash

sum=0

for i in `seq 100`

do

        sum=$[$sum+$i]

done

        echo $sum

查找系统内文件大于60K小于100K的文件,并删除他们

find / -type f -size +50k -size -100k -exec rm -f {} \;

统计nginx日志每个iP出现的次数

cat /var/log/nginx/access.log |awk '{print $1}'|sort -r|uniq -c

统计log目录下以test开头的100个文件,然后把这100个文件的第一行保存到aaa这个文件中

find log -type f -name "test*" |head -100|xargs head -1 -q > aaa

文件如下

111

aaa

111

222

333

111

打印数量超过三次的行

cat three |sort|uniq -c|awk '{if($1>3){print $2}}'

系统里如何查看某个包是否安装

rpm -q nginx

shell获取内存 CPU 硬盘

剩余内存:free |awk '/M/{print $4}'

cpu使用率:echo $(top -n1 |awk '/Cpu/{print $4}')%

磁盘总量:lsblk | awk '/disk/{print $4}'

grep获取不包含an的行

grep -v an /etc/passwd

vim打开一个文件,替换文中所有的user为users

//进入末行模式

:%s /user/users/g  

删除文件中最后一行

sed -i '$d' user

Linux启动流程

bios自检加载主程序 【MBR】加载次程序【GRUB】内核映射init进程

什么是微服务?

微服务架构就是将一个庞大的业务系统按照业务模块拆分成若干个独立的子系统,每个子系统都是一个独立的应用

Spring cloud是什么?

Spring cloud 是对于微服务架构的实现,底层基于http协议

Nginx工作模式

单进程:只有一个进程,所有工作都由它负责,一般在开发阶段和调试使用master-worker:一个master管理至少一个worker,master管理worker有信号处理,加载配置等,worker挂掉master会再启一个,稳定和性能高

153. Cookie和session的区别 数据存放位置不同:cookie数据存放在客户的浏览器上,即网页缓存session数据放在服务器上,即key-value形式,如redis 和mongoDB 安全程度不同:cookie不安全,session安全 数据存储大小不同:单个cookie保存的数据不能超过4K,一个站点普遍上限保存20个cookie

session存储于服务端,浏览器对其没有限制

154. Tomcat session共享

Tomcat内置的session复制方案Spring Session也就是基于redis实现session共享

docker容器有几种状态?

四种:运行、已暂停、重启、已退出

dockerfile中最常见的指令是什么?

FROM:指定基础镜像

LABLE:为镜像指定标签

RUN:运行指定的命令

CMD:容器启动时要运行的命令

docker三剑客 Compose 简化容器的生成和运行

 Machine 负责在多种平台上快速安装 Docker 环境

Swarm 将多个 Docker 主机封装为单个大型的虚拟 Docker 主机

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3