linux'面试集锦 |
您所在的位置:网站首页 › nginx4层负载 › linux'面试集锦 |
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 FILEbzip2 -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 MFSTFS 淘宝 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个cookiesession存储于服务端,浏览器对其没有限制 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 FILEbzip2 -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 MFSTFS 淘宝 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个cookiesession存储于服务端,浏览器对其没有限制 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 |