linux面试流程
1. 介绍一下自己
我叫杨建波,今年34岁,家住在燕郊,2007年6月毕业于防灾科技学院,专业计算机及应用。毕业后先后任职三家公司,第一家做的是招生专员,因为与专业不符合,所以换了一份工作。第二家做的是桌面维护工作还有sql server 2000的数据库维护。
现就职于东方兴业网络教育服务有限责任公司,也是中国人民大学网络教育学院。
在这家公司主要负责:
1. IDC机房维护管理,具体有:服务器上下架,资产管理,网络管理。
2. zabbix监控服务器维护,具体:设置监控项,现在已经设置了1000多项监控项。
3. 代码部署,具体:部署代码,使用的技术jenkins+git。
4. 网站维护,具体:NLB,nginx负载均衡,nginx动静分离。
5. 数据库维护,具体:sql server 2008 r2维护,mongodb维护,mysql维护,使用的技术数据库复制,数据库镜像,mongodb副本集,mysql主从复制,数据库备份(全备+增备)
6. 编写配置文档,规划部署方案。
自我介绍用时3-4分钟,逻辑性要强,要与简历匹配。
2. 你在该公司已经那么长时间了,为什么要跳槽?
这家公司规模不大,自己的能力得不到充分的发挥,提升空间有限,希望到一个更大的平台去发展,为公司创造价值的同时,也提升自己的能力。
3. 未来你怎么发展?
我本人还是倾向于自动化运维方向,也会按照公司的发展调整自己的目标。
4. nginx常用模块有哪些?
常用模块分类2块。
第一个,核心模块。error,everts,regex,epoll
第二个,http模块。log,auth,gzip,rewrite,upstream,proxy,memcache,fastcgi
5. nginx如何做优化?
1. 基本安全优化
1. 隐藏nginx版本号
2. 更改nginx默认用户,默认使用的是nobody.
2. 性能优化
1. worker进程数优化
2. worker进程cpu亲和性参数
3. nginx事件处理模型优化epoll
4. 单个进程客户端最大连接数
5. worker进程最大打开文件数
6. 开启高效传输模式
7. 优化nginx连接参数,调整连接超时时间
8. 上传文件大小限制
9. fastcgi相关参数调优
10. gzip压缩功能
11. expires缓存功能
3. 日志相关优化
1. 访问日志轮询脚本
2. 不记录不需要的日志
3. 访问日志的权限设置
4. 站点目录及文件url访问控制
1. 根据扩展名访问控制
2. 根据来源IP访问控制
5. nginx图片及目录防盗链
1. 根据HTTP referer实现防盗链
2. 根据cookie防盗链
6. nginx错误页面的显示
7. nginx防爬虫优化
根据http请求头的user_agent
8. CDN加速
9. nginx程序架构优化
动静分离,上传目录
6. nginx重定向如何做?
7. docker的命名空间?
7. dockerfile常用命令有哪些?
FROM 指定基础镜像
MAINTAINER 指定维护者的信息
RUN 命令前面加上RUN即可
ADD COPY文件,会自动解压
WORKDIR 设置当前工作目录
VOLUME 设置挂载主机目录
EXPOSE 指定对外的端口
CMD 指定容器启动后的要干的事情(每个Dockerfile只能有一条CMD命令,如果指定多条命令,只有最后一条执行。如果启动容器的时候也指定了命令,那么会覆盖Dockerfile里面的CMD命令)
ENTRYPOINT 跟CMD类似,如果启动容器的时候也指定了命令,那么不会覆盖Dockerfile里面的命令
ENV 设置环境变量
8. git常用命令有哪些?
git config --global user.name
git config --global user.email
git init .
git add
git commit -m "aaa"
git remote add origin git@github.com:/test/yangjianbo.git
git pull origin master
git push origin master
git reset HEAD~
git status
git logs
git checkout
git branch
git branch -d
git checkout branch
9. linux系统安全优化如何做?
10. 代码发布的流程
1.
11. TCP三次握手,四次断开
1. 三次握手
12. TCP的11种状态
13. HTTP原理
14. DNS原理
15. iptables有几个表以及每个表有几个链?
有三个表,常用的是filter和nat表。
filter表有三个链,INPUT,OUTPUT,FORWARD
nat表有三个链,OUTPUT,PREROUTING,POSTROUTING
16. iptables的几个表以及每个表对应链的作用,对应企业应用场景?
filter:
INPUT:过滤进入本机的数据包
OUTPUT:过滤从本机出去的数据包
FORWARD:过滤通过本机转发的数据包
对应企业应用场景:控制本机的访问
nat:
OUTPUT:
PREROUTING:进入防火墙之前检查规则,会修改目标地址和目标端口
POSTROUTING:出去防火墙之前检查规则,会修改源地址和源端口
17. 禁止来自10.0.0.188 ip地址访问80端口的请求
iptables -t filter -A INPUT -s 10.0.0.188 --dport 80 -j DROP
18. 如何使在命令行执行的iptables规则永久生效?
iptables-save >> /etc/sysconfig/iptables
19. 实现把访问10.0.0.3:80的请求转到172.16.1.17:80
iptables -t nat -A PREROUTING -d 10.0.0.3 --dport 80 -j DNAT --to-destination 172.16.1.17:80
20. 实现把访问本机的80的请求转到本机的8080端口,当前本机的IP为192.168.1.100
iptables -t nat -A PREROUTINIG -d 192.168.1.100 --dport 80 -j DNAT --to-destination 192.168.1.100:8080