【面筋】总结
文章:http://blog.51cto.com/ganbing/2057482
一、2018.03.23 14:00
1.如何统计一个目录下的文件数
ls -lR|grep '^-'|wc -l
2.如何查看http的连接数和TCP请求数?
netstat -an|grep -i "80"|wc -l
netstat -an|grep tcp|wc -l
3.如何修改linux默认的文件描述符,默认是1024.
#查看当前的文件描述符 ulimit -n
【方法1】 #修改文件描述符,打开如下文件新增一行,重启后生效 vi /etc/security/limits.conf * hard nofile 4096
* soft nofile 4096
【方法二】
ulimit -SHn 4096 #只对当前Session有效
将上述行写入/etc/profile文件中
4.检查和修复磁盘命令
#检查磁盘坏道 badblocks -v /dev/sda > result.txt #修复磁盘 fsck -y /dev/sda
5.现有网段192.168.10.0/24, 能ping通则认为此机器正常。请编写一个脚本,判断该网段的IP的状态?
for ip in `seq 1 254` do { ping -c 1 192.168.10.$ip > /dev/null 2>&1 if [ $? -eq 0 ]; then echo 192.168.1.$ip UP else echo 192.168.1.$ip DOWN fi }& done
[root@master-drbd scripts]# more ping1.sh #!/bin/bash for siteip in $(seq 1 254) do site="192.168.10.${siteip}" ping -c1 -W1 ${site} &>/dev/null if [ "$?" == 0 ];then echo "$site is UP" else echo "$site is DOWN" fi done
说明:&>/dev/null 将多余的东西丢入回收站
6.nginx中使用什么模块可以实现upstream段配置的server遇故障自动剔除呢?
upstream在设置的server出现故障时,会主动将无法访问的服务器剔除,即weight设置为0.
7.HAProxy、Nginx、LVS分别工作在OSI的几层?并简述他们的区别?
HAProxy: 可以工作在第四层(传输层)和第七层(应用层)。
Nginx: 工作在第七层(应用层)。
LVS: 工作在第四层,即传输层。
【LVS】
优点:
- 抗负载能力强,工作在4层仅做分发之用,没有流量的产生。这也决定了它在负载均衡里性能是最强的。
- 工作稳定,自身有完整的双机热备方案,如LVS+keepalived;
- 应用范围比较广,可以对所有应用做负载均衡;
- 配置性比较低
缺点:
- 软件本身不支持正则,不能做动静分离,凸显了Nginx+Keepalived的优势;
- 如果网站流量比较大,LVS/DR+Keepalived就比较复杂,特别是Windows Server的机器,配置和维护比较麻烦;
【Nginx】
优点:
- 工作在7层,可以针对http应用做一些分流的策略。例如针对域名、目录结构。它的正则比HAproxy还要强大和灵活;
- Nginx对网络依赖比较小,理论上能ping通就能进行负载均衡功能;
- Nginx安装和配置简单,测试方便;
- 可以承担高的负载压力且比较稳定,一般能支撑超过几万次的并发量;
- Nginx可以通过端口检测服务器内部的故障,例如根据服务器处理网页返回的状态码,超时等等,并且会把返回错误的请求重新提交到另一个节点;
- Nginx不仅是一款负载均衡、反向代理软件,还是一款功能强大的Web服务器。Nginx在处理静态页面,特别是高并发方面有优势;
- Nginx现在作为Web反向加速缓存越来越成熟,速度比传统的Squid服务器更快;
缺点:
- 对后端RealServer服务器,只支持通过端口检测后端服务器的状态,不支持URL来检测;
- 不支持Session保持、Cookier引导;
- 仅能支持http和Email;
【HAproxy】
优点:
- 工作在网络七层;
- 能够补充Nginx的一些缺点,例如Session保持、Cookie引导等;
- 支持URL检测后端出现问题的服务器;
- 支持更多的负载均衡算法:动态加权轮询、加权源地址哈希、加权URL哈希、加权参数哈希;
- 从效率上讲,比Nginx的负载均衡要高;
- 可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡;
- 支持虚拟主机;
8.MySQL主从复制,如何配置从主切换到备后,主恢复后不再切回到主?
如果采用MySQL+Keepalived架构的话,可以通过在keepalived.conf中的nopreempt选项来进行设置;
9.MySQL主主复制时,该如何配置?配置文件中的是配置MASTER、还是配置BACKUP?
通过搭建MySQL双主互备+Keepalived高可用时,Keepalived.conf中state都配置成BACKUP.
在设置不抢占时,MySQL1中的Keepalived.conf需添加nopreempt,而MySQL2的Keepalived.conf不要添加nopreempt.
10.Zabbix如何配置模板?
11. Linux的启动顺序
BIOS > MBR > GRUB > Kernel > Init > Runlevel
12. 了解过哪些nginx的衍生版本?
Tengine
SEnginx
openresty
13. 使用过Zabbix吗?了解Proxy吗?
Zabbix是一个分布式监控系统。它有丰富的模板。
14. 介绍解释下反向代理服务器?
反向代理方式就是通过代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并且将从内部网络服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一台服务器。当一台代理服务器能代理外部网络上的访问请求来访问内部网络时,这种代理服务的方式称为反向代理服务。
二、2018.03.23 17:00
1. nginx如何配置伪静态页面?只允许程序调用,而不允许使用浏览器直接能访问到文件?
【伪静态配置】
场景一: http://www.abc.com/index.php/front/index/index 重写成 http://www.abc.com/a.html
场景二:把带参数的1.2解析成3
1.http://www.abc.com/index.php/front/index/parse/name/yangxignyi/age/18
2.http://www.abc.com/index.php/front/index/parse?name=yangxignyi&age=18
3.http://www.abc.com/parse-yangxignyi-18.html
Nginx配置文件nginx.conf如下:
server{ listen 80; server_name www.abc.com; root "D:/phpStudy/WWW/abc"; location / { index index.php index.htm /public/index.html; autoindex off; include abc.conf; #rewrite a.html /index.php/front/index/index last; } location ~ \.php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } }
伪静态配置文件可以直接写在 location / {} 里面的,不推荐这样做,建议新增加个rewrite.conf写伪静态文件会好点,include 进来就行了,这样可以在rewrite.conf里面写n多配置。
如下是nginx.conf的配置
location / { index index.php index.htm /public/index.html; autoindex off; include rewrite.conf; #rewrite a.html /index.php/front/index/index last; }
rewrite.conf (这个文件自己创建就行了,文件内容写规则)
#场景一的规则 #http://www.abc.com/index.php/front/index/index rewrite a.html /index.php/front/index/index last; #场景二的规则 #1.http://www.abc.com/index.php/front/index/parse/name/yangxignyi/age/18 #2.http://www.abc.com/index.php/front/index/parse?name=yangxignyi&age=18 #3.http://www.abc.com/parse-yangxingyi-18.html rewrite parse-(\w+)-(\d+).html /index.php/front/index/parse/name/$1/age/$2 last;
\w:表示数字字母下划线
\d:表示数字
+:表示最少一个
{1,} :表示1到无穷大
{1,3} 表示1-3位数
写完规则,记得重启nginx!
2. 如果是你,如何在每天的0点对MySQL数据库进行备份,涉及到事务该如何处理?
3. 如果同一个网站有南方和北方两个节点,突然发现一个节点访问过慢,该怎么解决?
4. 如何批量复制文件到服务器?
我们可以采用自动化运维工具SaltStack来实现,每台机器都需要安装Agent.
5. 如何搭建MySQL读写分离?
搭建MySQL的读写分离可以采用两种方式。
方法一:通过MMM套件+Amoeba方式,是目前比较成熟的实现方式。
方法二:通过MySQL-proxy组件来实现读写分离,该组件是由官方开发的,但比较不稳定。
6.top命令中的load average的含义?
它分别记录了1分钟、5分钟、15分钟的系统平均负载!
7.简述一下三次握手和四次连接?
8.安装nginx的机器为什么必须要保证Linux内核版本为2.6以上?
- 自我介绍
- JVM垃圾回收算法和垃圾回收器有哪些,最新的JDK采用什么算法。
- 新生代和老年代的回收机制。
- 讲一下ArrayList和linkedlist的区别,ArrayList与HashMap的扩容方式。
- Concurrenthashmap1.8后的改动。
- Java中的多线程,以及线程池的增长策略和拒绝策略了解么。
- Tomcat的类加载器了解么
- Spring的ioc和aop,Springmvc的基本架构,请求流程。
- HTTP协议与Tcp有什么区别,http1.0和2.0的区别。
- Java的网络编程,讲讲NIO的实现方式,与BIO的区别,以及介绍常用的NIO框架。
- 索引什么时候会失效变成全表扫描
- 介绍下分布式的paxos和raft算法
- 你在项目中怎么用到并发的。
- 消息队列的使用场景,谈谈Kafka。
- 你说了解分布式服务,那么你怎么理解分布式服务。
- Dubbo和Spring Clound的区别,以及使用场景。
- 讲一下docker的实现原理,以及与JVM的区别。
- MongoDB、Redis和Memcached的应用场景,各自优势
- MongoDB有事务吗
- Redis说一下sorted set底层原理
- 讲讲Netty为什么并发高,相关的核心组件有哪些
- 完整的画一个分布式集群部署图,从负载均衡到后端数据库集群。
- 分布式锁的方案,Redis和Zookeeper那个好,如果是集群部署,高并发情况下哪个性能更好。
- 分布式系统的全局id如何实现。
- 数据库万级变成亿级,你如何来解决。
- 常见的服务器雪崩是由什么引起的,如何来防范。
- 异地容灾怎么实现
- 常用的高并发技术解决方案有哪些,以及对应的解决步骤。