Linux运维工程师笔试题第十套

1、Nginx是如何实现高并发的?

service nginx start之后,然后输入#ps -ef|grep nginx,会发现Nginx有一个master进程和若干个worker进程,这些worker进程是平等的,都是被master fork过来的。在master里面,先建立需要listen的socket(listenfd),然后再fork出多个worker进程。当用户进入nginx服务的时候,每个worker的listenfd变的可读,并且这些worker会抢一个叫accept_mutex的东西,accept_mutex是互斥的,一个worker得到了,其他的worker就歇菜了。而抢到这个accept_mutex的worker就开始“读取请求--解析请求--处理请求”,数据彻底返回客户端之后(目标网页出现在电脑屏幕上),这个事件就算彻底结束。

nginx用这个方法是底下的worker进程抢注用户的要求,同时搭配“异步非阻塞”的方式,实现高并发量。

【评析】在nginx.conf里第二行就是work_process,有默认是4的,也可以更改成auto,这个值不是越大越好,要可实际服务器CPU的情况而定,一般是CPU有几个,工作进程就有几个。

2、编写一个Nginx的access模块,要求准许192.168.3.29/24的机器访问,准许10.1.20.6/16这个网段的所有机器访问,准许34.26.157.0/24这个网段访问,除此之外的机器不准许访问。

location/{

access 192.168.3.29/24;

access 10.1.20.6/16;

access 34.26.157.0/24;

deny all;

}

【评析】防火墙是层层深入的,可以从硬件上用acl(访问控制列表)实现,如果没有钱买一个防火墙,那么还可以在linux上设置iptables,如果iptables不设置,还可以在nginx上设置。

nginx本身工作很少,内部的各个模块是实际的参与工作的,模块英文信息:http://nginx.org/en/docs/

3、给favicon.ico和robots.txt设置过期时间; 这里为favicon.ico为99天,robots.txt为7天并不记录404错误日志

location ~(favicon.ico) {
    log_not_found off;
    expires 99d;
    break;
}

location ~(robots.txt) {
    log_not_found off;
    expires 7d;
    break;
}

4、设定某个文件的浏览器缓存过期时间;这里为600秒,并不记录访问日志
location ^~ /html/scripts/loadhead_1.js {
    access_log off;
    expires 600;
    break;
}

5、只充许固定ip访问网站,并加上密码
printf "james:$(openssl passwd -crypt 123456)\n" >>/usr/local/nginx/conf/passwd
设定账号是james,密码是123456
location \ {
    allow 22.27.164.25; #允许的ipd
    deny all;
    auth_basic “KEY”; #登陆该网页的时候,会有这个“KEY”的提示,提示只能是英文,中文不识别。
    auth_basic_user_file /conf/htpasswd;
}

时间: 2024-10-08 21:54:05

Linux运维工程师笔试题第十套的相关文章

Linux运维工程师笔试题第十二套

本套都是shell的命令,enjoy it~ 1)假设某变量aaa="史蒂芬周星驰",现在只想要输出后面的"周星驰",应该怎么办? aaa="史蒂芬周星驰" echo ${aaa:3:3} [评析]已知变量总字符数和要切的起始字符数,就可以用这种方法切变量了.这种方法比较常见的应用于变量是长路径的情况下. 2)使用curl获取www.163.net的响应头信息 curl -I http://www.163.net [评析]curl -i 网址除了

Linux运维工程师笔试题第十三套

这套题的出处是http://blog.51cto.com/nolinux/1670406  ,看到了周末闲着没事就做一做,答案都是我结合自己的工作得到的,不一定百分百准确,现在拿出来跟各位分享一番. 1.请写出五种系统性能分析工具,并简述其作用和特点[我的答案] top.free.vmstat.iostat.perf等等等等,如果你想装逼,可以回答fio,blktrace,oprofile.具体的作用和特点这里不多说了,但是我着重要推荐vmstat,很实用很棒的一个命令.可以去移步看看https

Linux运维工程师面试题第五套

本次试题全部都是写脚本,一共有十道题,enjoy it~ 1.编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下. #Author:Name #E-mail:E-mail Address #Description:          写程序的时候加上姓名,联系方式和描述是一个好习惯. #!/bin/bash ls -l|awk '$5>10240 {print $9}' >name.txt    #先把大于10K的文件名都保存到name.txt的文件 for filename

Linux运维工程师面试题第七套

1.解释top命令和vmstat命令 top命令是实时监控当前系统的总体进程状态以及各个程序的进程状态,vmstat可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.其中它主要用途是查看虚拟内存情况. [评析]vmstat若是直接使用的话,就是现在当前那一刻的服务器状态值,一般来说vmstat都是搭配时间和采集次数使用,比如#vmstat 2 5,就是每两秒采集一下服务器状态,一共采集5下.如果是#vmstat 2,那就是一直在采集. 2.

Linux运维工程师面试题第八套

1.从AAA.log文件中提取"james"或者"curry",同时不包含"kobe"的行,然后提取":"分割的第五个字段. cat AAA.log|grep -E "james|curry"|grep -v "kobe"|awk -F ":" '{print $5}' [评析]搜寻"A or B"的方法就是grep -E "A|B&qu

Linux运维工程师面试题第四套

Python 1.假设 AAA=[1,1,1,3,5,2,6,1,7,3,45],请问使用python如何在将list里重复的数字过滤掉? >>>list(set(AAA)) 2.简述一下list和tripe的不同 list是动态的,设定完了可以删减元素,而tripe是静态的,不能删减元素,而且tripe会自动去重. 3.简述一下search()和match()的区别 4.如何在生成一个随机数? >>>import random >>>random.r

详解Linux运维工程师应具备的十大技能

Linux系统如果是学习可以选用Redhat或CentOS,特别是CentOS在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究一下SUSE,有些公司也喜欢用,例如我公司. 1.Linux系统基础 这个不用说了,是基础中的基础,连这个都不会就别干了,参考书籍,可以看鸟哥linux基础篇,至少要掌握这书60%内容,没必须全部掌握,但基本命令总得会吧. 2.网络服务 服务有很多种,每间公司都会用到不同的,但基础的服务肯定要掌握,

linux运维工程师面试题练习

前两天去某游戏公司面试.面试官为运维部女主管.由于笔试写得一塌糊涂,直接被鄙视得不行.女面试官连说话都懒得说.其实很多笔试题都是基础类型,考点也都知道,奈何不好好总结准备.掉坑里了!闲着也是闲着,不如几个题目来做做吧! 题目链接: http://www.yunweipai.com/archives/4443.html 一.Linux操作系统知识 常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块? a,centos redhat ubuntu b.centos

Linux运维工程师面试题第一套

1)Linux启动大致过程? 加载BIOS–>读取MBR–>Boot Loader–>加载内核–>用户层init依据inittab文件来设定系统运行的等级(一般3或者5,3是多用户命令行,5是界面)–>init进程执行rc.syninit–>启动内核模块–>执行不同级别运行的脚本程序–>执行/etc/rc.d/rc.local(本地运行服务)–>执行/bin/login,就可以登录了. [评析]基本看过<鸟哥私房菜>的目录就能知道,这是第五